1

C# のデータ構造にアイテムを非同期的に追加したいとします。

したがって、典型的な段階的な手順は通常次のとおりです。

List1.add(variable1); 

List2.add(variable2);

List3.add(variable3);

..等。

これを非同期で行うことは可能ですか?

また、各リスト間に依存関係がないか、それぞれの変数であるとも言います。

これはうまくできるでしょうか?

4

1 に答える 1

5

また、各リスト間に依存関係がないか、それぞれの変数であるとも言います。
これはうまくできるでしょうか?

はい、各スレッドが独自のリストを持っている限り、まったく問題はありません。

そしてそれを行う簡単な方法:

Parallel.Invoke(
   () => List1.add(variable1), 
   () => List2.add(variable2),
   () => List3.add(variable3)
);

一方、List<>.Add()は非常に小さくて高速な方法であるため、これを行うメリットはあまりありません。2 つ以上のリストが同時に内部的に成長する必要がある場合にのみ、メリットがあります。そして、それに対処するためのより良い方法があります。

于 2012-09-04T08:50:55.990 に答える