Нет, это плохой способ завершить поток, Thread.Abort () не является безопасным.

ужно разработать многопоточную рабочую роль Azure в C # - создавать несколько потоков, направлять запросы к ним, каждый запрос может потребовать очень много времени для обработки (не мой код - я вызову объект COM для выполнения реальной работы).

При отключении роли мне нужно изящно прекратить обработку. Как мне это сделать? Похоже, если я просто позвонюThread.Abort() ThreadAbortException брошен в нить и нить может даже использоватьtry-catch-finally (или жеusing) убирать ресурсы. Это выглядит довольно надежно.

Что меня беспокоит, так это то, что мой опыт состоит в основном из C ++, и невозможно аккуратно прервать поток в неуправляемом приложении - он просто остановится без какой-либо дальнейшей обработки, и это может привести к несогласованности данных. Так что я немного параноик, что случится что-нибудь подобное в случае, если я позвонюThread.Abort() для занятой темы.

Это безопасная практика для использованияThread.Abort() вместе с обработкойThreadAbortException? Что я должен знать, если я это сделаю?

Ответы на вопрос(7)

Ваш ответ на вопрос