В коде нет ошибок компиляции, но нет итерации во время выполнения. Я Stopped
loop iteration
на 200, поэтому l oop не будет идти дальше, но l oop не выполнит итерацию ниже < 200
.
Я не уверен. Есть ли альтернатива Stop, которую я могу использовать для исправления этого кода? Почему не выполняются итерации с более низким индексом?
Как решить эту проблему. Я погуглил вещи, но все тщетно. Пожалуйста, рассмотрите следующий код:
static void Main(string[] args)
{
var values= Enumerable.Range(0, 500).ToArray();
ParallelLoopResult result = Parallel.For(0, values.Count(),
(int i, ParallelLoopState loopState) => {
if (i == 200)
loopState.Stop();
WorkOnItem(values[i]);
});
Console.WriteLine(result);
}
static void WorkOnItem(object value) {
System.Console.WriteLine("Started working on: " + value);
Thread.Sleep(100);
System.Console.WriteLine("Finished working on: " + value); }
Любая помощь для решения этой проблемы будет принята с благодарностью. Спасибо