在每个不同的线程上调用服务并等待所有服务响应

nun*_*unu 1 .net c# multithreading

当我在一个Windows service项目上工作时,我发现在集成以下功能时遇到了麻烦.

  1. 我需要call 5 different web services on 5 different thread一次通话(单一方法).

  2. 我必须have to wait for all 5 service's response然后我必须执行下一个任务.

问题:我将如何wait for all service's response which is called by each different thread?进行下一步任务.

提前致谢.

小智 7

如果您使用的是.NET 4.0,则可以使用任务并行库.

使用新任务启动每个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);
Run Code Online (Sandbox Code Playgroud)