我必须在 Application_Error 处理程序中进行异步调用。所以我用 async 关键字定义了这个处理程序,但它不会在异常时触发。
protected async void Application_Error(object sender, EventArgs e)
{
...
await DoAsyncCall();
...
}
当我删除 async 关键字时,处理程序被触发。
顺便说一句,我已经厌倦了向 Application_Start 处理程序添加 async 关键字并且它工作正常。
如何使 Application_Error 异步?或者如何在没有 async 关键字的情况下进行异步调用?
最佳答案
终于找到了解决办法:
protected void Application_Error(object sender, EventArgs e)
{
...
Task task = Task.Run(async () => await DoAsyncCall());
task.Wait();
...
}
关于c# - 使用前缀异步时不会触发 Application_Error 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20376682/