在WCF的点击中等待关键字

在WCF的点击中等待关键字,wcf,asynchronous,async-await,Wcf,Asynchronous,Async Await,在基于任务的异步模式中-在调用方法时,我们使用await关键字,即 await client.OperationName(parameterlist) await关键字暂停方法的执行,直到等待的任务完成 “等待挂起方法的执行” 那么它与同步调用有何不同呢?在同步场景中,如果一个方法在等待该方法的执行完成时长时间运行线程块。这可能会导致可伸缩性/性能问题。相反,在异步场景(async/await)中,线程被释放,直到方法的可等待部分完成 这是您的方法中值得期待的部分。方法的执行在这里暂停,直到等

在基于任务的异步模式中-在调用方法时,我们使用
await
关键字,即

await client.OperationName(parameterlist)
await
关键字暂停方法的执行,直到等待的任务完成

“等待挂起方法的执行”


那么它与同步调用有何不同呢?

在同步场景中,如果一个方法在等待该方法的执行完成时长时间运行线程块。这可能会导致可伸缩性/性能问题。相反,在异步场景(
async/await
)中,线程被释放,直到方法的可等待部分完成

这是您的方法中值得期待的部分。方法的执行在这里暂停,直到等待完成

await client.OperationName(parameterlist)
我认为“暂停”这个词有点令人困惑。更准确地说,在异步方法上调用wait会将执行交给调用方法,这意味着它不会等待方法完成执行,也不会阻塞线程。一旦在后台执行完毕,该方法将从停止的位置继续

使用同步方法-直到方法完成执行,线程才会继续执行,这将导致阻塞

发件人:

异步方法旨在成为非阻塞操作。等待 异步方法中的表达式在 等待的任务正在运行。取而代之的是,这个表达式表示其余的 将方法的 异步方法

阅读斯蒂芬·克利里关于这方面的文章。它们提供了大量信息,应该可以消除您的任何困惑或问题


你能举例说明吗?您所说的“线程被释放,直到方法的可等待部分完成”是什么意思?
async
await
关键字被记录到死。详细的指导很难找到。