2

ASP.NET 中是否有任何方法可以在 IHttpHandler 中执行异步操作,然后使用通过 web.config appsetting 启用的新 SynchronizationContext 等待任务完成UseTaskFriendlySynchronizationContext

假设我们有类似下面的代码:

public void ProcessRequest(HttpContext context)
{
   var task = GetAndStartAsyncTask(context);

   // do some work

   // Wait for task to complete.
   task.Wait();

   // etc.
}

在这里,我希望在当前的 asp.net 同步上下文中触发任何异步回调。如果设置UseTaskFriendlySynchronizationContext为 false,则此代码将起作用。但是,启用它并且此处显示的代码将死锁(据我所知,因为任务排队作为当前上下文的延续,但链中的第一个任务(ProcessRequest)在等待时阻塞)。

有什么办法可以使这项工作?

注意:我在这里使用的是,IHttpHandler不是IHttpAsyncHandler

4

0 回答 0