C# のデータ構造にアイテムを非同期的に追加したいとします。
したがって、典型的な段階的な手順は通常次のとおりです。
List1.add(variable1);
List2.add(variable2);
List3.add(variable3);
..等。
これを非同期で行うことは可能ですか?
また、各リスト間に依存関係がないか、それぞれの変数であるとも言います。
これはうまくできるでしょうか?
C# のデータ構造にアイテムを非同期的に追加したいとします。
したがって、典型的な段階的な手順は通常次のとおりです。
List1.add(variable1);
List2.add(variable2);
List3.add(variable3);
..等。
これを非同期で行うことは可能ですか?
また、各リスト間に依存関係がないか、それぞれの変数であるとも言います。
これはうまくできるでしょうか?
また、各リスト間に依存関係がないか、それぞれの変数であるとも言います。
これはうまくできるでしょうか?
はい、各スレッドが独自のリストを持っている限り、まったく問題はありません。
そしてそれを行う簡単な方法:
Parallel.Invoke(
() => List1.add(variable1),
() => List2.add(variable2),
() => List3.add(variable3)
);
一方、List<>.Add()
は非常に小さくて高速な方法であるため、これを行うメリットはあまりありません。2 つ以上のリストが同時に内部的に成長する必要がある場合にのみ、メリットがあります。そして、それに対処するためのより良い方法があります。