C#中的多线程压缩

Gar*_*eth 7 c# compression multithreading

.net中是否有一个对流进行多线程压缩的库?我正在考虑内置的东西System.IO.GZipStream,但使用多个线程来执行工作(从而利用所有的cpu核心).

我知道,例如使用多线程的7-zip压缩,但他们发布的C#SDK似乎并没有这样做.

Cec*_*ame 7

我认为最好的办法是自己以相等的间隔分割数据流,如果使用非并行算法,则启动线程以并行分别压缩每个部分.(之后,单个线程将它们连接成一个流(您可以创建一个流类,当前一个流结束时继续从下一个流中读取)).

您可能希望看一下SharpZipLib,它比.NET中的固有压缩流要好一些.

编辑:当然,您需要一个标题来说明每个新流的开始位置.:)