Stop vs Break en Parallel.For

Stop vs Break en Parallel.For

loopState.Break() no rompe la función como un return . Así que la línea después del loopState.Break() aún se ejecutará. Después de que ese alcance haya terminado para ese número, for comprueba si el loopState.Break() había sido llamado. Si es así, todos los bucles pueden continuar hasta que se alcance el número llamado Break .

En su ejemplo, los ciclos del 0 al 24 se interrumpirán al mismo tiempo que el ciclo del 25 al 49 (y mostrarán sus números de "interrupción").

Los bucles 50..74 y 75..99 ni siquiera se iniciarán porque el segundo bucle 25..49 ya ha abortado toda la operación for, ya que sus números iniciales son mayores que el número de interrupción 10.


De la documentación de Break() :

Lo que esto significa es que la iteración actual aún terminará (entonces 10 se imprime). Break() tampoco es capaz de viajar en el tiempo, por lo que el 25 permanecerá impreso. Qué Break() significa que no hay nuevo iteraciones más allá de 10 se iniciará.


Respuesta más simple:

tanto stop como break evitan que se inicien nuevas iteraciones. Ambos aseguran que la iteración iniciada finaliza.

difference - stop - aborta la iteración que llamó y break no.