非界面线程中引发异常处理(http://zitiger.cnblogs.com/)
用到了多线程的地方,非界面线程的异常被吃掉是很正常的事,所以在非界面线程中引发异常应该转到界面线程来处理
public delegate void WorkThreadExceptionHandlerDelegate(Exception e);
protected void WorkThreadExceptionHandler(Exception e)
{
if (InvokeRequired)
{
BeginInvoke(new WorkThreadExceptionHandlerDelegate(WorkThreadExceptionHandler),new object[]{e});
return;
}
this.ShowStatus("Error!");
LogError(e);
}
catch的时候
catch (Exception ex)
{
WorkThreadExceptionHandler(ex);
}
这是我的做法 回复
public delegate void WorkThreadExceptionHandlerDelegate(Exception e);
protected void WorkThreadExceptionHandler(Exception e)
{
if (InvokeRequired)
{
BeginInvoke(new WorkThreadExceptionHandlerDelegate(WorkThreadExceptionHandler),new object[]{e});
return;
}
this.ShowStatus("Error!");
LogError(e);
}
catch的时候
catch (Exception ex)
{
WorkThreadExceptionHandler(ex);
}
这是我的做法 回复