在c#并行编程这本书中是这么介绍await的:async方法在开始时以同步方式执行,在async方法内部,await关键字对它参数执行一个异步等待,它首先检查操作是否已经完成,如果完成,就继续运行(同步方式...),否则,会暂停async方法,并返回.留下一个未完成的task,一段时间后,操作完成,async方法就恢复执行.
...(3000);
}
这个方法可以看到只有一个await 一个创建异步,然后线程睡眠3秒钟,
随后创建一个button按钮并添加一个事件,
?...await Task.Run(() => { Thread.Sleep(3000); });
Thread.Sleep(3000);
}
可以看到只在子线程中添加了睡眠...然而第二次代码在子线程中添加了睡眠3秒,所以在第一次检查操作师会发现并不会立即执行完毕,所以方法内以下代码也就是当前代码中的主线程睡眠3秒会作为await的后续代码(类似回调代码),跳出方法执行方法后面的代码