好奇的C#代码 - 需要一些解释

mar*_*ark 1 c#

可能重复:
为什么使用try {} finally {}和空的try块?

亲爱的女士们和先生们.在逐步完成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);
}
Run Code Online (Sandbox Code Playgroud)

有趣的伎俩.任何人都可以捐出一个解释吗?谢谢.

Jef*_*dge 9

这很可能是为了在存在的情况下执行该行ThreadAbortException.

根据文件:

引发此异常时,运行时会在结束线程之前执行所有finally块.