假设以下代码正在单独的线程中运行:
try{
var stuffToDispose = new SomeClassThatNeedsDisposing();
//doing thing with stuffToDispose
}
finally{
if(stuffToDispose != null)
stuffToDispose.Dispose();
}
使用引发 ThreadAbortException
的机制来终止该线程。在 null 检查和 Dispose() 之间,ThreadAbortException
是否可能发生?即,在 finally 块的中间部分是否会发生异常?
finally{
if(stuffToDispose != null)
//This is where the Exception would strike
stuffToDispose.Dispose();
}
我很确定答案是否定的,但有人坚信它是可能的。