一次又一次,我看到它说使用async- await不会创建任何额外的线程.这没有任何意义,因为计算机一次看起来只做一件事以上的唯一方法就是
因此,如果async- await这些都没有,那么它如何使应用程序响应?如果只有一个线程,则调用任何方法意味着在执行任何其他操作之前等待方法完成,并且该方法中的方法必须在继续之前等待结果,依此类推.
以下我需要你的帮助.近一个月来,我一直在阅读有关任务和异步的内容.
我想在一个简单的wep api项目中尝试实现我新获得的知识.我有以下方法,它们都按预期工作:
public HttpResponseMessage Get()
{
var data = _userServices.GetUsers();
return Request.CreateResponse(HttpStatusCode.OK, data);
}
public async Task<HttpResponseMessage> Get()
{
var data = _userServices.GetUsers();
return await Task<HttpResponseMessage>.Factory.StartNew(() =>
{
return Request.CreateResponse(HttpStatusCode.OK, data);
});
}
Run Code Online (Sandbox Code Playgroud)
所以问题.我试过用fiddler看看这两者有什么区别.异步的速度要快一点,但除此之外,在web api中实现类似的东西有什么好处?