Leo*_*Hat 6 c# packaging out-of-memory
我正在尝试调试使用OutOfMemoryException时创建相当大的ZIP文件时发生的情况System.IO.Packaging.ZipPackage.
代码遍历大型对象列表,为每个对象执行以下操作.
PackagePart为文件创建一个.System.IO.Stream到另一个:
FileStreamPackagePart::GetStream()=>MS.Internal.IO.Zip.ZipIOModeEnforcingStream最后它调用Package::Close()保存文件.
我遇到的问题是,对于一个特别大的对象列表,我看到了OutOfMemoryException(x86进程大小增加到大约1.2GB).
我正在考虑将对象数据划分为块,所以我每个循环只处理一个较小的量(即上面的步骤1-3).我的想法是,我将n在一个临时目录中创建ZIP文件,然后找到一种方法将它们组合成一个存档.
这可能用System.IO.Packaging吗?我会用什么来组合这些部件?
或者有更好的方法来解决这个问题吗?