相关疑难解决方法(0)

如果async-await没有创建任何其他线程,那么它如何使应用程序响应?

一次又一次,我看到它说使用async- await不会创建任何额外的线程.这没有任何意义,因为计算机一次看起来只做一件事以上的唯一方法就是

  • 实际上一次做多件事(并行执行,使用多个处理器)
  • 通过调度任务并在它们之间切换来模拟它(做一点A,一点点B,一点A,等等)

因此,如果async- await这些都没有,那么它如何使应用程序响应?如果只有一个线程,则调用任何方法意味着在执行任何其他操作之前等待方法完成,并且该方法中的方法必须在继续之前等待结果,依此类推.

.net c# multithreading asynchronous async-await

220
推荐指数
8
解决办法
5万
查看次数

异步任务<HttpResponseMessage>获取VS HttpResponseMessage获取

以下我需要你的帮助.近一个月来,我一直在阅读有关任务和异步的内容.

我想在一个简单的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中实现类似的东西有什么好处?

c# asynchronous task async-await asp.net-web-api

10
推荐指数
2
解决办法
3万
查看次数