¿Está usando Thread.Abort () y manejo ThreadAbortException en la práctica segura de .NET?

Necesito desarrollar un rol de trabajador de Azure multiproceso en C #: crear varios subprocesos, enviarles solicitudes, cada solicitud puede requerir mucho tiempo para procesar (no mi código; llamaré a un objeto COM para hacer el trabajo real). @

Al cerrar el rol, necesito detener con gracia el procesamiento. ¿Cómo puedo hacer eso? Parece que solo llamo aThread.Abort() elThreadAbortException se lanza en el hilo y el hilo puede incluso usartry-catch-finally (ousing) para limpiar recursos. Esto se ve bastante confiable.

Lo que me molesta es que mi experiencia es principalmente C ++ y es imposible abortar con gracia un hilo en una aplicación no administrada; simplemente se detendrá sin ningún procesamiento adicional y esto podría dejar los datos en un estado inconsistente. Así que estoy un poco paranoico sobre si sucede algo así en caso de que llame aThread.Abort() para un hilo ocupado.

¿Es una práctica segura usarThread.Abort() junto con el manejoThreadAbortException? ¿Qué debo tener en cuenta si hago eso?

Respuestas a la pregunta(7)

Su respuesta a la pregunta