cnt
ネストされた内に変数( )がありますparallel.foreach
。私はこのプログラムを実行しましたが、どうやらうまく機能しているようです。このコードが本当にスレッドセーフであることを誰かが知っていますか?parallel
ループ内で変数を定義することは可能ですか?
ありがとうございました。
object obj = new object();
int total=0;
Parallel.For(0, 2, i =>
{
Parallel.For(0, 1000000, j =>
{
int cnt = 0;
if ((arr[i, j] % 2) == 0)
{
Interlocked.Increment(ref cnt);
}
lock (obj)
{
total= total+ (cnt / 2);
}
});
});