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执行完了--异步方法执行完了

浙公网安备 33010602011771号