たくさんのファイルをpdfに変換する小さなプログラムを書きました。
プログラムは次のことを行います。
- フォルダからオブジェクトの配列を取得する
FileInfo
(10'000ドキュメント) - それぞれについて
FileInfo
FileInfo.CopyTo()
、を使用してバックアップコピーを作成します- いくつかのAsposeライブラリを使用してドキュメントをPDFに変換します
- 変換後、PDFを新しい宛先にコピーします
- foreach内で、イベントが発生し、WinForm UIによって処理されて、進行状況が表示されます
ドキュメントのサイズによっては、ドキュメントの変換に0〜3秒かかる場合があります。それが完璧な候補になると思ったParallel.ForEach
ので、プログラムを変更しました。
ただし、変換には、従来のforeachでは1時間ではなく、1.5時間かかりましたParallel.Foreach
(私が試したサーバーには、2つのIntel Xeon Procsがあります)。
何を間違えたのですか、それともパフォーマンスを向上させるために何を考慮する必要がありますか?