2010-06-15 38 views
3

当我执行ThreadPool.QueueUserWorkItem时,我不希望未处理的异常终止我的整个进程。所以我这样做:后台线程中的ASP.NET异常处理

ThreadPool.QueueUserWorkItem(delegate() { 
    try { FunctionIActuallyWantToCall(); } 
    catch { HandleException(); } 
}); 

这是推荐的模式?似乎应该有一个更简单的方法来做到这一点。它在一个asp.net-mvc应用程序中,如果这是相关的。

回答

2

您需要捕获回调中的异常(如您的示例中所示)以避免传播到调用线程中。这是推荐的模式。如果它是一个ASP.NET应用程序,您也可以在Application_Error方法中处理它Global.asax