Ale*_*lex 2 c# multithreading exception
我正在用C#开发一个GUI应用程序.
它是一个多线程应用程序,我想NetClient.StartDownload用try/ catch语句包装所有线程(其中一些我不打开,例如哪个是无阻塞函数),这样如果抛出异常并且未被捕获,我可以记录它并报告基地.
我尝试使用Application.ThreadException和AppDomain.CurrentDomain.UnhandledException,但它们似乎只捕获GUI异常.
我需要采用不同的方式处理这个问题吗?
每个线程中的代码都需要有一个try-catch.异常不是跨线程编组的......并且未处理的异常只会导致应用程序失效.
要捕获所有异常 - 只需使用基本异常类型.
catch(Exception e) { // log e }
Run Code Online (Sandbox Code Playgroud)
更新:您可以查看AppDomain.UnhandledException- 处理此事件以在任何线程上记录未处理的异常; 但是你不能阻止应用程序停止运行.欲了解更多信息,请访问
http://www.albahari.com/threading/#_Introduction - 在该页面的末尾.
| 归档时间: |
|
| 查看次数: |
1082 次 |
| 最近记录: |