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