我需要不并行地启动“数量”的任务(可变但少于 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)