Pregunta sobre terminar un hilo limpiamente en .NET

Entiendo que Thread.Abort () es malvado por la multitud de artículos que he leído sobre el tema, por lo que actualmente estoy en el proceso de extraer mis abortos para reemplazarlos por una forma más limpia; y después de comparar las estrategias de usuario de las personas aquí en stackoverflow y luego después de leer"Cómo: Crear y finalizar subprocesos (Guía de programación de C #)" tanto de MSDN que establecen un enfoque muy similar, que es utilizar unvolatile bool estrategia de comprobación de enfoque, lo cual es bueno, pero todavía tengo algunas preguntas ...

Inmediatamente, lo que se destaca aquí para mí, ¿qué sucede si no tiene un proceso de trabajo simple que solo ejecuta un bucle de código crujiente? Por ejemplo, para mí, mi proceso es un proceso de carga de archivos en segundo plano, de hecho recorro cada archivo, así que eso es algo, y seguro que podría agregar miwhile (!_shouldStop) en la parte superior, que me cubre cada iteración de bucle, pero tengo muchos más procesos de negocios que ocurren antes de que llegue a su siguiente iteración de bucle, quiero que este procedimiento de cancelación sea rápido; ¡¿no me digas que necesito rociarlos mientras se repiten cada 4-5 líneas en toda mi función de trabajador ?!

Realmente espero que haya una mejor manera, ¿podría alguien aconsejarme si esto es, de hecho, el enfoque correcto [y único?] Para hacer esto, o las estrategias que han utilizado en el pasado para lograr lo que busco.

Gracias pandilla.

Otras lecturas:Todas estas respuestas SO suponga que el hilo de trabajo se repetirá. Eso no me sienta cómodamente. ¿Qué sucede si se trata de una operación de fondo lineal pero oportuna?

Respuestas a la pregunta(8)

Su respuesta a la pregunta