这是C#/Javascript等编程语言的异步编程语法。简单来说:
然后问题就简单了。既然一个方法可以执行到一半就暂停,那么暂停之后,剩下的代码怎么办?答案是:把它包装起来,等条件满足之后再执行。
最基本的操作自然是异步I/O,网络操作通过 await异步等待,等网络操作完成后再接着执行后面的代码。这样当被等待的网络操作执行完成之前,当前的线程可以去处理任务队列中的其他任务,从而完全消除阻塞并最大化CPU 使用效率。而等网络操作完成了,之前等待网络操作的后续操作就可以被恢复执行,至于是被扔到某个线程的队列里排队执行还是直接现场执行,完全由调度器决定1)。