【发布时间】:2016-11-08 23:42:21
【问题描述】:
这是来自https://www.asp.net/mvc/overview/performance/using-asynchronous-methods-in-aspnet-mvc-4的示例代码
public async Task<ActionResult> GizmosAsync()
{
ViewBag.SyncOrAsync = "Asynchronous";
var gizmoService = new GizmoService();
return View("Gizmos", await gizmoService.GetGizmosAsync());
}
据我了解,async/await 对于释放工作线程很有用,以便它可以处理其他请求。但是 GetGizmosAsync 不仅是对“HttpResponse.Content.ReadAsAsync”的调用(我猜它是由 IO 池中的一个线程执行的)它还调用其他非异步代码,例如“var uri = Util.getServiceUri("Gizmos"); ”。
什么在执行“var uri = Util.getServiceUri("Gizmos");"如果它不是来自工作池的线程?这里没有 IO。
【问题讨论】:
-
谢谢,我马上去看看。我也在阅读 jon skeet 的 eduasync 系列