如何解决“ Zlib异常:状态错误(数据检查不正确)”

时间:2019-05-25 22:59:03

标签: c# exception zlib

我正在处理包含数百个压缩数据片段的文件。我为此使用Threadpool。每个数据片段都分配给Threadpool队列。

RawData是一个字节数组,异常在181行上,即

decompress.CopyTo(mem);

所有我注意到的是,如果我只是运行应用程序,那么它将生成数十个ZlibExceptions。如果我要调试它,并且应用程序有时处于空闲状态,那么有一些例外。之后,我在解压缩数据之间放置了一种睡眠方法1秒钟,而我只得到了4个异常。

RawData是字节数组。

ZlibStream decompress = new ZlibStream(new MemoryStream(c.RawData), CompressionMode.Decompress);
MemoryStream mem = new MemoryStream();
decompress.CopyTo(mem);
Ionic.Zlib.ZlibException: Bad state (incorrect data check)
   w Ionic.Zlib.InflateManager.Inflate(FlushType flush)
   w Ionic.Zlib.ZlibCodec.Inflate(FlushType flush)
   w Ionic.Zlib.ZlibBaseStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   w Ionic.Zlib.ZlibStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   w System.IO.Stream.InternalCopyTo(Stream destination, Int32 bufferSize)
   w System.IO.Stream.CopyTo(Stream destination)
   w myApp.Form1.Decompress(Object state) w X:\Path\To\Projects\myApp\myApp\Form1.cs:wiersz 181

我正在使用Threadpool,因此延迟工作人员毫无意义。我找不到该随机异常的任何解决方案,这取决于应用程序执行的速度。

0 个答案:

没有答案