后台线程中的ASP.NET异常处理

时间:2010-06-15 23:13:42

标签: asp.net asp.net-mvc multithreading exception-handling

当我执行ThreadPool.QueueUserWorkItem时,我不希望未处理的异常终止我的整个进程。所以我做了类似的事情:

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

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

1 个答案:

答案 0 :(得分:2)

您需要捕获回调内部的异常(如示例所示),以避免传播到调用线程中。这是推荐的模式。如果它是ASP.NET应用程序,您也可以使用Application_Error

中的Global.asax方法处理它