C# 计时器回调中未处理的异常

C# 计时器回调中未处理的异常,c#,.net,multithreading,c#-4.0,unhandled-exception,C#,.net,Multithreading,C# 4.0,Unhandled Exception,我在Windows服务中使用了System.Threading.Timer来执行例行任务。回调方法中抛出的未处理异常是否会使服务崩溃?我在网上搜索,找不到任何有用的链接 我在事件日志中得到这个异常,服务崩溃 at MyNameSpace.MyClass.MyCallback(System.Object) at System.Threading.ExecutionContext.runTryCode(System.Object) at System.Runtime.CompilerServices

我在Windows服务中使用了
System.Threading.Timer
来执行例行任务。回调方法中抛出的未处理异常是否会使服务崩溃?我在网上搜索,找不到任何有用的链接

我在事件日志中得到这个异常,服务崩溃

at MyNameSpace.MyClass.MyCallback(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading._TimerCallback.PerformTimerCallback(System.Object)

任何有关此的MSDN文章指针都将不胜感激。

从异常处理的角度来看,服务的行为与任何其他应用程序一样。
工作线程也是如此,它执行计时器的回调


如果异常未处理,则没有理由继续应用程序。服务将被终止。

这是您可以自己发现的。在回调中抛出异常并查看发生了什么。在回调方法中抛出(但未捕获)的异常将发生在不同的线程上。根据应用程序的编写方式,它可能会导致服务崩溃。但是,由于回调不在主线程上,因此很可能会忽略异常或将异常写入事件查看器。可能需要发布一些代码,以便其他人更详细地回答。或者在出现未处理的异常时搜索任何不使服务崩溃的原因?