2011-03-07 74 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塊。