在阅读了大量有关异步等待的知识后,我只能在GUI线程(WPF/WinForms)中找到使用它的好处。如何处理异步I/O方法
它在哪些情况下减少了WCF服务中线程的创建? 程序员是否必须在服务中的每个方法上使用async-await ,方法是选择在Web服务中实现异步等待?在充满异步等待的服务中制作一些非异步等待方法会降低服务的效率?怎么样?
最后一个问题 - 有人说,使用'await Task.Run(()=> ...)'不是“真正的异步等待”。这是什么意思?
谢谢你, 斯塔夫。
编辑:
这两个答案都是优秀的,但即使有关如何异步等待的作品,我建议阅读@Stephen克利回答这里瓢解释: https://stackoverflow.com/a/7663734/806963
以下主题都需要理解他的回答: SynchronizationContext,SynchronizationContext.Current,TaskScheduler,TaskScheduler.Current,Threadpool。
'Task.Run'用于在线程池线程上执行cpu-bound代码。真正的异步等待是关于IO限制的代码。 –
这个问题可能看起来太宽泛了,但考虑到正确的答案,它不是。整个概念可以在5段中全面清楚地解释。 –