async和await

async 声明的方法会开启新线程执行, 不会阻塞主线程.

await 声明的方法, 会将在其之后的code 打包成委托, 在完成后执行打包的代码.

 

public A()

{

  B();

  C();

}

 

public async void B()

{

  var result = await D(); //此处会异步处理D,同时将E()打包成委托,在D()完成后执行

  E();

}

 

//无返回值

public Task  D()

{

  return Task.Run(()=>

        do something;

        return null;

      );

}

 

//有返回值

public Task<T> D()

{

   return Task.Run(()=>

          do something;

          retrun T;

      );

}

 

代码执行顺序为:
A() --> B() / C() --> D() --> E()

posted on 2016-07-07 18:03  Groot.Boom  阅读(125)  评论(0编辑  收藏  举报