2
このコードが範囲外の例外を返す理由を知っていますか?
たとえば、leastAbstractions
のListインスタンスにcount == 10
がある場合、ループは11
回の実行をi = 10
で実行し、この例外を返します。それだけで10回を実行していますが、私==これらのタスクの一部は実行時までに10 -パラレルコードがOutOfRangeExceptionをスローする
for (int i = 0; i < leastAbstractions.Count; i++)
{
Task.Factory.StartNew((object state) =>
{
this.Authenticate(new HighFragment(leastAbstractions[i])).Reactivate();
}, TaskCreationOptions.PreferFairness);
}
新しいタスクの作成では、カウンタが引数としてすぐに渡されると考えました。私は間違っていたと思う。ありがとう。 – pevogam
@blaze:ラムダ式*でカウンタ*を使用しています。ラムダ式が実行されると、キャプチャしているものの*現在の値が使用されます。ラムダ式はあなたの仕事が意味するものなので、それは別のスレッドで起こらなければなりません。 –