【发布时间】:2015-06-05 02:04:30
【问题描述】:
我在一定程度上理解线程,但在实践中我没有什么经验。在查看我正在维护的这段代码时,AWAIT 似乎没有任何好处。对此方法的所有调用都是通过 AJAX 进行的,并且仅在用户单击导出链接时发生。由于该方法没有其他任何作用,我看不到 AWAIT 有任何优势,而是想象它实际上引入了一些开销。我也相信所有其他点击导出的用户都会将这个方法作为他们自己的线程输入,对吧?因此,这可能仅在单个用户快速多次单击导出时才有用?谢谢。
[PreventLogging]
[HttpPost]
public async Task<JsonResult> GetActivityReportCallsAsync([DataSourceRequest] DataSourceRequest request)
{
try
{
var result = await GetAllCallsAsync();
return Json(result.ToDataSourceResult(request));
}
catch (Exception exc)
{
return JsonShowMessage(false, ServerMessageType.Error, exc.Message);
}
}
【问题讨论】:
-
您还期望如何获得结果?
-
@HansPassant:虽然是这样,但 OP 只承认对线程的了解很少。鉴于这种情况,也许还有一点解释......
-
另一种方法是显式获取更笨重的任务的值。然而,await/async 提供了一个巨大的好处,它被实现为一个延续,这意味着你的线程实际上在异步调用执行时被释放了。
-
您可以继续编写相同的代码,而无需
await如果您发现代码同样易于使用,那么您可能会认为这里是多余的。如果您发现在没有await的情况下尝试完成这项工作还有很多工作量,那么这并不是多余的。
标签: c# ajax multithreading async-await