我有一个帖子:
Thread mthread = new Thread(new ThreadStart(thread_main));
mthread.Start();
它启动函数thread_main
void thread_main()
{
if (BotSuite.ImageLibrary.Template.Image(screendata, invdata).IsEmpty)
{
throw new Exception();
}
}
这个异常应该在主线程中捕获!我在按钮事件处理程序中添加了一行。
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ErrorHandler);
如果异常在主线程中,它会很有效,但如果它在mthread
中没有任何反应!
我该如何解决?
答案 0 :(得分:0)
如果您使用较旧的Visual Studio或不想使用任务,则可以使用Backroundworker。
var worker = new BackgroundWorker();
worker.DoWork += WorkerDoWork;
worker.RunWorkerCompleted += WorkerRunWorkerCompleted;
worker.RunWorkerAsync();
private static void WorkerDoWork(object sender, DoWorkEventArgs e)
{
throw new Exception("my exception");
}
private static void WorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null)
{
//error handling
}
}