当我在一个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);
    

    09-25 20:15