我写了一个小程序,将一堆文件转换为 pdf。
该程序执行以下操作:
FileInfo
从文件夹中获取对象数组 (10'000 文档)- 对于每个
FileInfo
FileInfo.CopyTo()
使用,创建备份副本- 使用一些 Aspose 库将文档转换为 PDF
- 转换后,将 PDF 复制到新的目的地
- 在 foreach 内部,一个事件由 WinForm UI 引发和处理以显示一些进度
根据文档的大小,文档的转换可能需要 0-3 秒。我认为这将是一个完美的候选人Parallel.ForEach
,所以我修改了程序。
然而,转换需要 1 小时而不是传统的 foreach 1.5 小时Parallel.Foreach
(我尝试过的服务器有 2 x Intel Xeon Procs)。
我做错了什么或者我需要考虑什么才能获得更好的性能?