Ash*_*shu 6 .net c# multithreading
如果在辅助线程中发生异常,如何在主线程中捕获异常?
该场景的代码片段如下:
private void button1_Click(object sender, EventArgs e)
{
try
{
Thread th1 = new Thread(new ThreadStart(Test));
th1.Start();
}
catch (Exception)
{
}
}
void Test()
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(100);
if (i == 2)
throw new MyException();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以添加Application.ThreadException事件处理程序:
乔是对的。鉴于上面的 Windows 窗体代码,我假设是 Windows 窗体:
此事件允许 Windows 窗体应用程序处理 Windows 窗体线程中发生的未处理的异常。将事件处理程序附加到 ThreadException 事件来处理这些异常,这将使您的应用程序处于未知状态。如果可能,异常应该由结构化异常处理块来处理。
| 归档时间: |
|
| 查看次数: |
3833 次 |
| 最近记录: |