2013-12-03 4 views
1

У меня есть настольное приложение vb.net, и я использую thread.Abort() там.Избегайте ошибки system.threading.threadabortexception

Я получаю ошибку system.threading.threadabortexception.

Ниже приведено сообщение об ошибке, которое я получаю, но не каждый раз. Необработанное исключение произошло в вашем приложении. Если вы нажмете Продолжить ..... Тема прерывается.

Просьба предложить, как избежать этой ошибки.

ответ

4

Просьба предложить, как избежать этого сообщения об ошибке.

Лучший и правильный способ избежать этого - не звонить Thread.Abort(). Thread.Abort() действительно плохая идея в целом. Вместо этого вы должны создавать свои подпрограммы вокруг cooperative cancellation model, встроенных в фреймворк.

+0

Я понимаю Рид, но я использовал Thread.Abort только в одном месте в своем приложении. И сообщение об ошибке также редко встречается. Есть ли более короткий подход или что произойдет, если я удалю thread.abort? – user3060430

+0

@ user3060430 ThreadAbortException в основном означает, что «поток был прерван» - если вы вызываете Thread.Abort, вам нужно ожидать этого. Правильный способ справиться с этим состоит в том, чтобы исправить это одно место в приложении, где вы делаете что-то неуместное ... –

+0

Я отменяю только текущую нить внутри события закрытия формы. Я не думаю, что это необходимо. Ниже приведен код: Private Sub frmFWCore_FormClosed (ByVal eventSender Как System.Object, ByVal EventArgs Как System.Windows.Forms.FormClosedEventArgs) Ручки Me.FormClosed \t Попробуйте t.Abort() Поймать ех As Exception LogTraceInfo (» CitiCSI - FWCORE_frm - FormClosed - ошибка сбщ:», ex.Message) End Try \t \t End Sub – user3060430

Смежные вопросы