Está usando Thread.Abort () e manipulando ThreadAbortException na prática segura do .NET?

Eu preciso desenvolver uma função de trabalhador do Azure multithread em C # - criar vários threads, alimentar solicitações para eles, cada solicitação pode levar um tempo muito longo para processar (não meu código - chamarei um objeto COM para fazer um trabalho real).

Desligamento de função de cima Eu preciso parar normalmente o processamento. Como faço isso? Parece que se eu ligar paraThread.Abort() aThreadAbortException é lançado no thread e o thread pode até usartry-catch-finally (ouusing) para limpar recursos. Parece bastante confiável.

O que me incomoda é que minha experiência é principalmente em C ++ e é impossível abortar normalmente um thread em um aplicativo não gerenciado - ele simplesmente pára sem qualquer processamento adicional e isso pode deixar os dados em estado inconsistente. Então, eu estou meio paranóica sobre se algo assim acontece no caso de eu ligar paraThread.Abort() para um segmento ocupado.

É prática segura usarThread.Abort() juntamente com o manuseioThreadAbortException? O que devo saber se fizer isso?

questionAnswers(7)

yourAnswerToTheQuestion