在一个客户端方法中调用两个异步WCF服务方法并在该方法中等待,直到调用返回?

时间:2012-12-05 12:33:40

标签: wcf asynchronous .net-4.0

我需要从客户端使用的WCF服务中调用两个操作。这两个操作将在理想情况下同时调用,因为它们都需要几秒钟才能完成。一旦完成BOTH呼叫,我想继续在客户端工作。我有点卡住实现这个的最佳模型。任何帮助或代码示例将不胜感激。

另外:我可以在客户端以相同的方法从WCF服务中调用方法,然后在此方法中等待调用完成吗? (在等待这两个操作返回期间,客户端中没有任何其他操作,所以我可以在启动异步调用的相同方法中等待。)

使用.NET 4.0 / VS 2010& Visual Basic。

全部谢谢!

1 个答案:

答案 0 :(得分:1)

您可能想要考虑您想要“控制”的位置。例如,您可以让客户端进行两次调用,每次调用都执行一项功能,或者您可以让客户端进行一次调用,并将两次调用完全放在服务器上。

这个指南将是你想要这两个操作的紧密程度。它们会一起被执行吗?如果客户端有时可能只想执行其中一个操作,那么只有灵活性才能进行两次wcf调用。因此,客户几乎可以做一个“pick'n'mix”。

如果您认为客户是进行这两个电话的合适场所,后台工作人员可能会帮助您。

无论哪种方式,通过你需要编写一些代码的东西的声音,等待两件事情完成。我过去使用的方法是使用系统事件。查看方法WaitHandle.WaitAll,了解可用的功能类型。这些是非常防弹的,并且与wcf之类的东西无关,当时的缺点是它们会占用资源,所以如果你最终会得到很多(几十个)你可能想要重新考虑。但是两个不会成为问题。