我已经搜索过这个问题,但我找到的解决方案都没有帮助。也许有人可以帮助我。
我有以下循环:
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
似乎没有返回新的或不同的值(即使在同一个线程中)。
我也试过这个解决方案,但没有效果。