gpt4 book ai didi

c# - .Net 并行 WaitAll()

转载 作者:行者123 更新时间:2023-11-30 13:47:58 27 4
gpt4 key购买 nike

我的代码中有这样一种情况,我开始执行未知数量的任务并想使用 Task.WaitAll()

像这样:

if (condition) 
{
var task1 = Task.Factory.StartNew (call the web service1...);
}

if (condition)
{
var task2 = Task.Factory.StartNew (call the web service2...);
}

if (condition)
{
var task3 = Task.Factory.StartNew (call the web service3...);
}

Task.WaitAll(task1, task2, task3);

问题是我不能说

Task.WaitAll(task1, task2 , task3)

因为我不知道他们中的哪一个会真正开始。有解决方案的想法吗?

最佳答案

您可以使用任务列表并将您的任务动态添加到列表中:

var tasks = new List<Task>();

if (condition)
{
var task = Task.Factory.StartNew (call the web service1...);
tasks.Add(task);
}

if (condition)
{
var task2 = Task.Factory.StartNew (call the web service2...);
tasks.Add(task2);
}

if (condition) {
var task3 = Task.Factory.StartNew (call the web service3...);
tasks.Add(task3);
}

Task.WaitAll(tasks.ToArray());

关于c# - .Net 并行 WaitAll(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14436565/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com