回答
您可以收聽Application.ThreadException
和AppDomain.UnhandledException
事件以捕獲線程未捕獲的異常。但最好的辦法是在線程中捕獲並處理異常。這應該是正常關機/記錄的最後手段。
這取決於您定位的.NET框架。
在1.1及更低版本中,子線程拋出的異常只有在try/catch塊之外運行時纔會被轉發到主線程。
在2.0及更高版本中,此行爲已更改:線程將被終止,並且異常將不被允許繼續進行。
無論如何,您可以像處理單線程應用程序一樣處理線程內的異常。
查看http://msdn.microsoft.com/en-us/library/ms228965(v=VS.90).aspx僅供參考。
子線程拋出的異常將會終止從.NET 2開始的整個程序。 – cdhowie 2010-11-16 07:22:40
剛剛嘗試過。 cdhowie是正確的。 – user496949 2010-11-16 07:24:09
「轉發給主線程」是什麼意思?你能舉一個例子說明這將如何工作以及這些例外情況如何被發現? – 2010-11-16 07:24:45
沒有,考慮下面的代碼:
try
{
var t = new Thread(()=>
{
Thread.Sleep(5000);
throw new Exception();
});
t.Start();
//t.Join();
}
catch
{
//you can't deal with exception here
//even though you uncomment `t.Join`
}
處理其中的例外「屬於」子線程例外。
- 1. AnyEvent在多線程環境
- 2. 在多線程環境
- 3. 實現多線程環境
- 4. 多線程環境問題
- 5. Python不能在多線程環境
- 6. 在多線程環境中生成PDF
- 7. 在多線程環境中使用NLog
- 8. Shiro在多線程環境中
- 9. 在.net中調試多線程環境
- 10. 數據在多線程環境
- 11. 的getInstance將在多線程環境
- 12. 在多線程環境(嵌入式v8)
- 13. 在多線程環境中使用CList
- 14. 在多線程環境中重繪
- 15. 在多線程環境中使用TraceSource
- 16. 在多線程環境中使用StringBuilder
- 17. 在多線程環境中休眠
- 18. 在多線程環境中使用Log4Net
- 19. IShellItemImageFactory :: GetImage卡在多線程環境
- 20. 在多線程環境下的Android ResultReceiver
- 21. 在多線程環境中讀取值
- 22. 在多線程環境中使用sqlite
- 23. JSF語言環境例外
- 24. AES Java多線程例外
- 25. 在java多線程環境中關閉套接字和線程
- 26. 在多線程環境中測量線程的執行時間
- 27. 多線程和多處理器環境對線程有用嗎?
- 28. 在Arduino環境中啓用例外
- 29. 多線程環境中的堆
- 30. 多線程環境中的Ninject攔截
您使用的是什麼技術? WinForms,WPF,控制檯,ASP.net? – 2010-11-16 07:27:08