我有一个多线程的Windows服务,每24小时左右会无法预料地停止运行一次。我正在写入事件日志,这很好,但是每当服务崩溃时,事件日志中都没有消息(即使服务已停止,尽管AutoLog = true)。是否有办法将未捕获的异常直接写入日志,即使它们不在原始线程中?
答案 0 :(得分:1)
首先,您生成的线程应该有一个顶级try { } ... catch { }
块,它会捕获(并且,如果适当,吞下或重新抛出)异常。除此之外,您可以使用AppDomain.UnhandledException
事件来捕获任何未处理的异常并将其注销。