3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
Application.ThreadException特定于Windows窗體。Winforms運(yùn)行事件處理程序以響應(yīng)Windows發(fā)送給它的消息。例如,單擊事件,我確定您知道它們。如果這樣的事件處理程序拋出異常,則Winforms消息循環(huán)中就會(huì)有一個(gè)捕獲該異常的后臺(tái)程序。
該支持會(huì)觸發(fā)Application.ThreadException事件。如果您不重寫它,則用戶將獲得ThreadExceptionDialog。這使他可以忽略異常并繼續(xù)運(yùn)行您的程序。順便說(shuō)一句,這不是一個(gè)好主意。
您可以通過(guò)在Program.cs的Main()方法中調(diào)用Application.SetUnhandledExceptionMode()來(lái)禁用此行為。沒(méi)有適當(dāng)?shù)闹С?,?dāng)線程因未處理的異常而死亡時(shí),會(huì)發(fā)生通常的事情:AppDomain.UnhandledException觸發(fā)并且程序終止。
Fwiw:“ ThreadException”是一個(gè)非常糟糕的名稱選擇。它與線程無(wú)關(guān)。
- 3 回答
- 0 關(guān)注
- 535 瀏覽
添加回答
舉報(bào)