在您的特定示例中,该操作根本不是异步的,因此您正在执行的操作是异步同步。您只是释放一个线程而阻塞另一个线程。不需要这样做,因为所有线程都是线程池线程(与GUI应用程序不同)。
在关于“异步同步”的讨论中,我强烈建议,如果您有一个内部实现了同步的API,则不应公开仅将sync方法包装在中的异步对象
Task.Run。
我应该从公开异步方法的同步包装器吗?
但是,
async在有实际异步操作(通常是I /
O)的地方进行WebAPI调用时,而不是阻塞坐在并等待结果的线程,该线程将返回线程池并执行其他操作。总而言之,这意味着您的应用程序可以用更少的资源做更多的事情,并提高可伸缩性。



