Rob*_*abe 5 c# asp.net asp.net-mvc task-parallel-library
希望这是一个很好而简单的答案.
我在ASP.NET Core 1中使用C#MVC Web API.我正在创建Web方法,并且我已经看到了返回数据的示例.
例1:
public async Task<IActionResult> ExampleCall([FromBody]ExampleObj model)
{
// Call some lower level function...
var result = LowerLevelCall(model);
return result;
}
Run Code Online (Sandbox Code Playgroud)
并看到这样的其他例子.
例2:
public async Task<IActionResult> ExampleCall([FromBody]ExampleObj model)
{
// Call some lower level function...
var result = await LowerLevelCall(model);
return result;
}
Run Code Online (Sandbox Code Playgroud)
主要区别在于使用await运算符的示例2 .实施await运营商的意义是什么?这个免费资源会不会等待代码在示例1中完成?
提前感谢任何提示!
在您的方案中,async操作员将停止执行该方法,直到收到结果LowerLevelCall.但是,当停止执行该方法时,将await异步等待,以便不阻止该线程本身.从LowerLevelCall方法获得结果后,只需恢复同步执行.
示例1 - 如果LowerLevelCall执行需要很长时间,您的线程将被阻塞,并且只有在执行LowerLevelCall完成之后才会执行任何操作.
示例2 - 如果使用await,则不会阻止线程,因为await异步等待.之后LowerLevelCall执行方法的结果结束将分配给您的result变量.
异步和等待简介 - 本文应该可以帮助您开始使用异步和等待.
| 归档时间: |
|
| 查看次数: |
3031 次 |
| 最近记录: |