小编Ang*_*Sky的帖子

并行运行多个任务(可变数量)并在所有任务完成后继续

我需要不并行地启动“数量”的任务(可变但少于 10 个),并等待它们全部完成,从每个任务中获取结果。我从他们每个人那里得到结果,保存在一个列表中,然后最后使用它。

这是我的代码,它正在运行,但我认为必须有一种更简洁的方法来做到这一点。

导致任务数量

List<String> Arguments = new List<String> { "AA", "BB", "CC" }; 

List<String> ResultList = new List<String>();  

//**AT LEAST I'VE GOT ONE**

Task<String> Tasks = Task<String>.Factory.StartNew(() =>
{
    return DoSomething(Arguments[0]);
});

ResultList.Add(Tasks.Result);

for (Int32 i = 1; i < Arguments.Count; i++)
{
    ResultList.Add(Tasks.ContinueWith<String>(Result =>
    {
        return DoSomething(Arguments[i]);

    }).Result);
}

//**DO I NEED THIS?? It's working even without!!**
//Tasks.Wait();

for (Int32 i = 0; i < ResultList.Count; i++)
{
    textBox1.AppendText(ResultList[i] + Environment.NewLine + Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading task task-parallel-library

5
推荐指数
2
解决办法
2386
查看次数

标签 统计

c# ×1

multithreading ×1

task ×1

task-parallel-library ×1