2

4 つの long[] を含むリストがある場合、各 long[] にスレッドを割り当てて変更することは可能ですか? 技術的には、別のスレッドがアクセスすべきデータを変更しようとするスレッドはありません。

long[] array1 = new long[4]{1,2,3,4};
long[] array2 = new long[4]{2,4,5,6};
long[] array3 = new long[4]{3,4,8,9};
long[] array4 = new long[4]{4,5,8,10};

List<long[]> myList = new List<long[]>();

myList.Add(array1);
myList.Add(array2);
myList.Add(array3);
myList.Add(array4);

次に、タスク ファクトリを使用して、スレッド 1 を取得し、array1 の各要素を 1 で乗算します。スレッド 2 は、スレッド 2 の各要素を 2 で乗算します。したがって、最終的な構成は次のようになります。

1,2,3,4
4,8,10,12
9,12,24,27
16,20,32,40
4

3 に答える 3

0

使用している構造は本質的にスレッドセーフではありませんが、定義したプロセスは、配列ごとにスレッドを 1 つだけ持つことで制限を回避しているため、これらの構造を安全に処理できます。

于 2013-07-22T18:40:19.483 に答える