Мне трудно понять loopState.Stop()
и loopState.Break()
. Я прочитал MSDN и несколько сообщений об этом, но я все еще в замешательстве.
Насколько я понимаю, каждый разделитель итераций предоставляет оставшиеся индексы для обработки потоков, и loopState.Stop()
останавливает все потоки, а loopState.Break()
останавливает текущий поток.
Однако давайте рассмотрим следующую ситуацию:
Parallel.For(0, 100, (i, loopState) =>
{
if (i >= 10)
loopState.Break();
Debug.Write(i);
});
Для этого цикла у меня есть следующий результат:
0 25 1 2 3 4 5 6 7 8 9 10
Я понятия не имею, почему в результате есть 10 и 25 чисел.
Кто-нибудь может помочь?
Постскриптум У меня i5 520M CPU (2 ядра => 4 темы)