【发布时间】:2016-09-20 07:10:38
【问题描述】:
我想从各种服务中获取信息。我怎样才能实现所有服务调用可以同时执行使用 C# 任务,而不是线程。
我试过的C#代码:
void GetServiceList() {
Task.Factory.StartNew(() => {
var List1 = client1.GetList1();
var List2 = client2.GetList2();
var List3 = client3.GetList3();
var List4 = client4.GetList4();
var List5 = client5.GetList5();
var List6 = client6.GetList6();
var List7 = client7.GetList7();
var List8 = client8.GetList8();
var List9 = client9.GetList9();
var List10 = client10.GetList10();
});
}
在上面的代码中,任务被创建,但服务调用是按顺序发生的。我希望将其设为 Parallel。
【问题讨论】:
-
你有没有尝试过?您是否尝试创建相关任务?你遇到问题了吗?如果您根本不知道如何使用任务,请查看教程。有数百个教程解释了如何启动多个任务。
-
是的。我试过了,但它一一调用 Task.Factory.StartNew(() => { ... Statements ... });在此我调用了所有的服务。
-
发布您在问题本身中尝试的内容。顺便说一句,您可以多次致电
Task.Run或Task.Factory.StartNew并等待所有结果。虽然这是一个基本概念。您应该首先阅读教程,而不是尝试将一些代码放在一起。您可能会发现还有其他方法可以同时调用多个操作 -
我更新了代码供您参考。我是面向任务编程的新手。我回顾了一些基本教程,我得到了这个结构。如果我的代码有任何问题,请按照我的要求帮助我。
标签: c# asynchronous parallel-processing task-parallel-library task