Task taskpro = new Task (delegate{codeblock});
Task taskbeds = new Task (delegate{codeblock});
Task taskpax = new Task (delegate{codeblock});
List<Task> TaskList = new List<Task>();
TaskList.Add(taskBeds);
TaskList.Add(taskPro);
TaskList.Add(taskPax);
Task.WaitAll(TaskList.ToArray());
在每个代码块中,我向不同的API发送请求。问题是,如果我分别发送请求并且希望最大程度地减少等待时间,API返回响应将花费很多时间。
答案 0 :(得分:0)
首先,请不要使用new Task
。使用从异步方法返回的Task
,或者如果只有同步方法可用,请使用Task.Run
。
然后,等待它们全部与Task.WhenAll
异步完成。
var tasks = new List<Task<T>>();
tasks.Add(() => DoSomethingAsync());
tasks.Add(() => DoSomethingElseAsync());
var results = await Task.WhenAll(tasks);
这是并发,而不是并行性。这意味着它们可以同时运行。