0
私は同じ戻り値の型 "リスト"で10種類のメソッドを持っています。私はすべてのメソッドをTaskに追加しています。タスクリストを繰り返し実行します。パフォーマンスを向上させるのにどれが最適かを知る必要があります。 Task.whenAnyまたはParallel.invoke?C#タスクのリストとtask.whenAnyのパフォーマンスを使用
あなたの回答を感謝します。
私は同じ戻り値の型 "リスト"で10種類のメソッドを持っています。私はすべてのメソッドをTaskに追加しています。タスクリストを繰り返し実行します。パフォーマンスを向上させるのにどれが最適かを知る必要があります。 Task.whenAnyまたはParallel.invoke?C#タスクのリストとtask.whenAnyのパフォーマンスを使用
あなたの回答を感謝します。
Task.WhenAllは、すべてが並行して完了するのを待つでしょう。
Task.WhenAnyは最初のものが終了するまで待機します。
Task.WhenAllはおそらくあなたが望むものであり、パフォーマンスにも優れています。
これは、あなたの仕事が何をしているかによってまったく異なります。並行して実行することでパフォーマンスが向上することはないかもしれません(例:2つのタスクが同じ物理ディスクの異なる領域に同時にアクセスしようとしている場合など)。 –
コンピュータのCPU数とコンピュータのメモリ容量によって異なります。メモリとスワップスペース(ハードドライブ上)の間で多くのページスワップが行われると、パフォーマンスが大幅に低下する可能性があります。並列処理の数を増やすと、並列処理をサポートするのに十分なメモリがない場合にスワップ回数が増える可能性があります。通常、各CPUには専用のRAMがありますので、CPUを増やすとRAMが増え、通常はスワップが減少します。 – jdweng