2011-03-07 77 views
1

可能重复:
Why use try {} finally {} with an empty try block?的C#代码好奇的一点 - 需要一些解释

尊敬的女士们先生们和。在逐步浏览MS .NET代码时,我偶然发现了这件作品:

try { } finally 
{ 
    // Called in a finally because it needs to run uninterrupted in order to maintain consistency. 
    queued = IOThreadScheduler.current.ScheduleCallbackHelper(callback, state); 
} 

有趣的把戏。任何人都可以捐赠一个解释吗? 谢谢。

回答

9

这很可能是为了在存在ThreadAbortException时执行该行。

按照docs

当这种引发异常,运行时结束线程之前执行所有finally块。