2016-04-15 2 views
0

私は同じ戻り値の型 "リスト"で10種類のメソッドを持っています。私はすべてのメソッドをTaskに追加しています。タスクリストを繰り返し実行します。パフォーマンスを向上させるのにどれが最適かを知る必要があります。 Task.whenAnyまたはParallel.invoke?C#タスクのリストとtask.whenAnyのパフォーマンスを使用

あなたの回答を感謝します。

+0

これは、あなたの仕事が何をしているかによってまったく異なります。並行して実行することでパフォーマンスが向上することはないかもしれません(例:2つのタスクが同じ物理ディスクの異なる領域に同時にアクセスしようとしている場合など)。 –

+0

コンピュータのCPU数とコンピュータのメモリ容量によって異なります。メモリとスワップスペース(ハードドライブ上)の間で多くのページスワップが行われると、パフォーマンスが大幅に低下する可能性があります。並列処理の数を増やすと、並列処理をサポートするのに十分なメモリがない場合にスワップ回数が増える可能性があります。通常、各CPUには専用のRAMがありますので、CPUを増やすとRAMが増え、通常はスワップが減少します。 – jdweng

答えて

0

Task.WhenAllは、すべてが並行して完了するのを待つでしょう。

Task.WhenAnyは最初のものが終了するまで待機します。

Task.WhenAllはおそらくあなたが望むものであり、パフォーマンスにも優れています。

関連する問題