Медленная параллель. Для прерывания - PullRequest
2 голосов
/ 30 августа 2010

У меня есть следующий код внутри большего цикла, после профилирования моего кода я обнаружил, что весь выигрыш в скорости выполнения Parallel.For теряется в течение длительного времени, необходимого для завершения метода Stop() Есть ли способ улучшить это? Может звонить Thread.Sleep()?

Спасибо.

Parallel.For(0, 1000, (i, loopState) => 
{ 
   if (a == b)
       loopState.Stop(); 
}); 

1 Ответ

3 голосов
/ 30 августа 2010

Я думаю, вы должны использовать метод loopState.Break(), поскольку это ключевое слово для ключевого слова break.Метод Stop устанавливает флаг IsStopped, так что другие итерации могут проверять этот флаг и останавливаться по своему усмотрению.Не останавливает цикл

...