如何判断一组web服务调用是否已完成

本文关键字:服务 web 是否 已完成 一组 调用 何判断 判断 | 更新日期: 2023-09-27 18:23:42

我正在使用silverlight,正在调用一组soap-webservice调用,并且希望在我知道所有调用都已完成后执行操作。

所以,我有三个不同的电话。我在一个循环中对每个异步调用进行10次,然后等待它们返回。我怎么知道10个选项中的一个何时完成?我已经很久没有从事螺纹加工了。

如何判断一组web服务调用是否已完成

每个调用都会向客户端返回一个事件,表示它已完成。一个简单而基本的方法是为每个调用增加一个包变量,然后当值为10时,您就知道所有调用都完成了。

更健壮的机制是在每次请求之前增加调用次数,然后在请求完成时减少调用次数。当计数器返回零时,您就知道所有请求都已完成。

这里需要注意确保对该变量的访问是线程安全的。

您可以使用BackgroundWorker启动所有Web服务调用,并传入WaitHandle(如ManualResetEvent),然后创建这些调用的数组。然后使用WaitHandle.WaitAll方法。在每次回拨中,您将设置WaitHandle。然后,在后台工作程序中,它将阻塞(因为WaitAll),直到设置了所有的等待句柄。