C#的异步async和await

异步和多线程有什么区别?其实,异步是目的,而多线程是实现这个目的的方法。

async和await很方便的实现了线程直接的赋值问题,

调用async修饰的方法,如果没有await就跟调用普通方法没有区别,如果有await就需要等待方法执行完!await还可以放在task之前来等待线程执行完!

async和await对比多线程好处:能够能方便的实现线程直接的等待,和线程直接的传值

public async Task TestMethod1()
      {
          var t=await  testAsync();
           Debug.WriteLine(t);
          Debug.WriteLine("testMethode执行完了");
          Thread.Sleep(20000);
 
      }
 
      public async Task<string> testAsync()
      {
 
          Debug.WriteLine("异步方法执行之前");
          var task= new  Task<string>(()=>
          {
           
              Debug.WriteLine("异步方法执行完了");
              return "fdsf";
          });
          task.Start();
          return await task;
 
      }
//异步方法执行之前--异步方法执行完了--fdsf--testMethode执行完了
去掉testMethode的await之后的输出
//异步方法执行之前--testMethode执行完了--异步方法执行完了

  

posted @ 2019-04-08 10:29  xiaoye2019  阅读(35)  评论(0)    收藏  举报