c#捕捉一个失败的线程
本文关键字:一个 失败 线程 | 更新日期: 2023-09-27 18:03:21
是否有一种方法可以在c#中最深处捕获终止线程?我现在有:
AppDomain.CurrentDomain.UnhandledException += new System.UnhandledExceptionEventHandler(App_ThreadException);
开头
~IOThread()
{
Console.WriteLine(string.Format("IOThread destroyed at: {0}", DateTime.Now));
}
一个析构函数。
try
{
Server.world.Tick();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
try catch访问失败或null引用。某些东西导致处理线程停止,它不是一个无限循环,因为如果我在调试器中执行BreakAll,处理线程不在线程列表中。
任何帮助将非常感激,我甚至不能调试这个问题
首先AppDomain.CurrentDomain.UnhandledException没有"catch"任何东西。如果出现异常,应用程序仍然会崩溃。这个事件的存在是为了让你可以在崩溃之前做一些事情。
第二,你混淆了析构函数和终结式。
第三,如果在另一个线程中有一个未处理的异常-整个应用程序将崩溃。如果它没有崩溃——那只能意味着一件事——你的线程已经完成工作了。
正确地做到这一点的唯一方法是将catch(Exception)放在程序中创建的每个线程的根,包括线程池回调方法。