Что происходит после thread.Abort() ??C# thread abort exception
Скажет у меня есть:
Thread mWorker = new Thread(new ThreadStart(this.run));
..
mWorker.Start();
**where**
private void run()
{
Logger.d(TAG, "run()");
...
try {
while (this.mRunning){
...
}
} catch (ThreadAbortException tae){
Logger.e(TAG,"some msg", tae);
this.doSomething();
} catch (IOException ioe){
Logger.e(TAG,"some msg", ioe);
this.doSomething();
} catch (Exception e){
Logger.e(TAG,"some msg", e);
this.doSomething();
} finally {
gracefoulyClose();
}
Logger.d(TAG, "run() - ended");
}
Нить более сложная .. но отображаются здесь Эссенциальный. Итак, что происходит при вызове Abort()? будет ли моя уловка работать и продолжить вызов doSomething()?
Потому что я до сих пор получить в консоли:
A first chance exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll
An exception of type 'System.Threading.ThreadAbortException' occurred in mscorlib.dll but was not handled in user code
Но у меня есть улов для этого. Не так ли?
так моя попытка поймать OK? потому что, когда вы используете «try {code A} catch (Ex e) {}" .. вы знаете, что код A может вызвать исключение .. но мой код не бросает поток Abort .. Не знаю, чувствую ли я?мой код собирается поймать AbortExcetion? – pulancheck1988
Если что-то в вашем цикле while вызывает исключение ThreadAbortException, то да, оно будет поймано в вашем блоке catch. ThreadAbortException - особое исключение, которое может быть вызвано временем выполнения .NET, а не обязательно вашим кодом. – dcp