当我在一个Windows service
项目上工作时,发现在集成下面的功能时遇到了麻烦。
call 5 different web services on 5 different thread
(以单一方法)。 have to wait for all 5 service's response
,然后我必须执行下一个任务。 问题:我将如何
wait for all service's response which is called by each different thread?
,然后执行下一步的任务。提前致谢。
最佳答案
如果使用的是.NET 4.0,则可以使用任务并行库。
使用新的Task开始每个Web服务调用,然后调用Task.WaitAll,以传递创建的任务的数组。
Task[] taskList = new Task[5];
taskList[0] = System.Threading.Tasks.Task.Factory.StartNew(()=> ServiceCall1());
taskList[1] = System.Threading.Tasks.Task.Factory.StartNew(()=> ServiceCall2());
taskList[2] = System.Threading.Tasks.Task.Factory.StartNew(()=> ServiceCall3());
taskList[3] = System.Threading.Tasks.Task.Factory.StartNew(()=> ServiceCall4());
taskList[4] = System.Threading.Tasks.Task.Factory.StartNew(()=> ServiceCall5());
System.Thread.Tasks.Task.WaitAll(taskList);