Protobuf反序列化

时间:2015-09-06 10:46:23

标签: .net protobuf-net

我们现在使用protobuf几年了,它对我们的工作很有帮助。

但是,最近我们遇到的反序列化问题很少。

以前反序列化是连续完成的,现在是为了加快我们使用的所有核心系统所能提供的过程。

场景:

  1. 我们正在生成报告,其中包含100张图片。
  2. 每个图像都是一个小部件,每个小部件都有自己的数据源。
  3. 我们有多个小部件访问相同的数据(存储在protobuf中)。
  4. 附件是截图,突出显示2个小部件开始反序列化。
  5. 其中第1个成功反序列化。
  6. 第二个未通过以下附加错误消息进行反序列化
  7. 注意:第一次和第二次反序列化相隔几毫秒发生。

    错误:

      

    上下文:1个生成小部件的错误。 AnalysisTaskGlobalID:   d549f367-f42f-45fa-b230-f2839a6fefe6错误:类型异常   ' ProtoBuf.ProtoException'被扔了。堆栈:at   ProtoBuf.ProtoReader.StartSubItem(ProtoReader reader)中   c:\ Dev \ protobuf-net \ protobuf-net \ ProtoReader.cs:599行   ProtoBuf.ProtoReader.ReadTypedObject(Object value,Int32 key,   ProtoReader阅读器,Type type)in   c:\ Dev \ protobuf-net \ protobuf-net \ ProtoReader.cs:第531行   proto_2(Object,ProtoReader)at   ProtoBuf.Meta.TypeModel.Deserialize(流源,对象值,类型   type,SerializationContext context)in   c:\ Dev \ protobuf-net \ protobuf-net \ Meta \ TypeModel.cs:506行at at   ProtoBuf.Serializer.Deserialize [T](流源)中   c:\ Dev \ protobuf-net \ protobuf-net \ Serializer.cs:第69行

    我们不会认为它是一个多线程问题!因为我们尝试了同步反序列化过程。

    但是,在反序列化之前添加1000毫秒的睡眠时,大部分时间都可以工作!

    对此有任何想法,请告诉我。

1 个答案:

答案 0 :(得分:-1)

这最终不是protobuf错误。我们的申请没有充分同步。