すでにこの質問を検索しましたが、見つけた解決策はどれも役に立ちませんでした。多分誰かが私を助けることができます。
次のループがあります。
private static readonly Random RANDOM = new Random();
...
int[] array; // is initialized, when used. ;)
if (array.Sum() != 0)
{
int j = 0;
do {
j = RANDOM.Next(8);
} while (array[j] == 0);
}
このループ全体が別のループ内にあり、これも - ループ内にありParallel.Foreach
ます。どうやら、それj
はいつものよう0
です。ほとんどの場合array[0] == 0
、それは目立ちませんが、 の場合、ループから抜け出すことはありません。do-while
-loop が速すぎるのではないかと疑いました。しかし、数秒後 (~30) もループを離れません。そのためRandom
、同じスレッドであっても、新しい値または異なる値を返していないようです。
私もこの解決策を試しましたが、効果はありませんでした。