往往不知道为什么不会导致线程堵塞。在这里,简单的谈论下await的一点原理。
...在c#并行编程这本书中是这么介绍await的:async方法在开始时以同步方式执行,在async方法内部,await关键字对它参数执行一个异步等待,它首先检查操作是否已经完成,如果完成,就继续运行(同步方式...),否则,会暂停async方法,并返回.留下一个未完成的task,一段时间后,操作完成,async方法就恢复执行.
...(() => { Thread.Sleep(3000); });
Thread.Sleep(3000);
}
可以看到只在子线程中添加了睡眠3秒的代码,然后我们再次运行就会神奇的发现...,此时会先弹出"同步代码"这局话,然后等待3秒后窗体就不能被移动.看到这里我们就应该明白了为什么.