【发布时间】:2012-12-11 16:54:31
【问题描述】:
我必须在不阻塞 UI 线程的情况下依次调用多个 WCF 方法。
每个方法都必须在调用下一个方法之前完成。
我已经使用 svcutil 设置了我的 WCF 服务,因此我有一个可用的同步方法的异步版本。
如果我调用异步版本,这些方法将同时执行,这是我想要避免的。
如果我调用同步版本,UI 线程被阻塞,所以我的 UI 没有响应,这是我想要避免的。
如何调用异步版本并在下一次调用之前等待每次调用完成,而不阻塞 UI 线程?
假设我必须循环每次出现的要由 WCF 方法处理的对象:
foreach (MyObject obj in SomeCollection)
{
myWCFProxy.TreatObject(obj); // This is a duplex service and I am handling its callback in a separate method.
// I would like to wait here (without blocking the UI thread) until the method returns.
}
我该怎么做?
【问题讨论】:
-
你实现了基于任务的异步模式吗?如果是这样,请为每个异步调用使用
await。 -
@mikez 我正在使用 .NET Framework 4.0。
标签: c# wcf asynchronous synchronization