3

MVC 4 中异步任务背后的机制是什么?它与普通线程有什么关系?请提供详细信息。

4

4 回答 4

2

如果您对关键字感兴趣async,您可能会发现第 9 频道对 Anders Hejlsberg 的采访很有趣。await

另外,请看一下:这个 PDC 视频

于 2011-10-01T11:18:58.250 回答
1

通常,单个 ASP.NET 页面请求由单个线程处理。线程发送响应后,返回到 ASP.NET 线程池。

当您使用async/ await(或异步页面)时,处理请求的线程会将请求标记为不完整,然后返回到 ASP.NET 线程池。当 awaitable 稍后完成时,会分配一个 ASP.NET 线程来运行该方法的其余部分。

更具体地说,async/await默认使用SynchronizationContext. 有关详细信息,请参阅我的 MSDN 文章。

于 2011-10-02T02:50:30.993 回答
1

如前所述,async关键字是.Net 的一部分。为了更好地实现异步编程,微软为此发布了几个 CTP,它将在 .Net 4.5 AFAIK 上开箱即用。

下面的文章也很有帮助:

http://www.juliencorioland.net/Archives/en-aspnet-mvc-4-asynchronous-controllers

于 2011-10-01T10:43:33.683 回答
0

异步任务是 .NET 的一项功能,而不是 ASP.NET MVC 4 的一项功能。它们在 ASP.NET 中的工作方式与在 .NET 中的其他地方相同。

于 2011-10-01T05:24:09.203 回答