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

C# 如何判断一组web服务调用是否已完成?,c#,.net,wpf,silverlight,web-services,C#,.net,Wpf,Silverlight,Web Services,我正在使用silverlight,正在调用一组soap Web服务调用,并希望在我知道所有调用都已完成后执行一个操作 所以,我有3个不同的电话。我在一个循环中进行10次异步调用,并等待它们返回。我如何知道10组中的一组何时完成?我已经很久没有使用线程了。每次调用都会向客户端返回一个事件,表示线程已完成。一种简单而基本的方法是只为每个调用增加一个包变量,然后当该值为10时,您就知道所有调用都完成了 更健壮的机制是在每个请求之前增加调用数,然后在请求完成时减少调用数。当计数器返回到零时,您知道所有请

我正在使用silverlight,正在调用一组soap Web服务调用,并希望在我知道所有调用都已完成后执行一个操作


所以,我有3个不同的电话。我在一个循环中进行10次异步调用,并等待它们返回。我如何知道10组中的一组何时完成?我已经很久没有使用线程了。

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

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


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

您可以使用启动所有Web服务调用,并传入一个,例如,并创建一个数组。然后使用该方法。在每次回拨中,您将设置WaitHandle。然后,在后台工作程序中,它将阻塞(因为WaitAll),直到设置了所有waithandles。

当触发完成的事件时。所有函数调用都在同一个线程上吗?另外,有没有一种方法可以在整数达到10时触发事件,或者我应该在完成的调用末尾添加一个if,以便在整数为10时调用另一个函数?@Justin-线程安全地满足递增和递减计数之间的交互。最简单的解决方案就是检查
count==0
(如果使用基本方法,则检查10)并调用最终函数。