2016-07-28 10 views
-1

forループを使用して各ファイルを処理するタスクを作成する前に、ファイルを並列処理する必要があります。良い理想。だから私は作成するタスクの数を制御し、各タスクが完了した後、すべてのファイルが更新されるまで別の新しいタスクを作成することを望みます。どうやってやるの?タスクを使用して100以上のファイルを並列処理する方法

+1

私はそれをお勧めしません。非同期処理は多くの点で優れていますが、限界があり、一度に100ファイルを処理しようとすると、通常の制限をはるかに上回ります。また、実際のスレッド管理(扱う必要がある)は非常に低レベルであり、フレームワークによって大きく抽象化されています。私は、あなたが求めているものとは異なるアプローチを提案しています(これ以上の情報なしで私がアドバイスすることはできません)。 – jleach

+0

違うアプローチを教えてもらえますか? –

+0

各ファイルを処理する作業はCPU時間の点で高価ですか? –

答えて

4

ファイルを並行して処理しないでください。これは、ハードディスクがファイルの切り替えに多くの時間を浪費するためです。 SSD Cドライブに5つのファイルがあり、SSD以外のディスクに5つのファイルがあるなど、物理的に異なるハードディスクがない限り、2つのファイルを同時に処理することができます。

関連する問題