C# 多线程等待子线程结束 Task.Factory
private void button1_Click(object sender, EventArgs e)
{
List<Task> tasks = new List<Task>();
Task.Factory.StartNew(() =>
{
for (int i = 0; i < 10; i++)
{
Task t = Task.Factory.StartNew((k) => { Call(k); }, i);
tasks.Add(t);
}
if (tasks.Count == 0)
{
throw new Exception("Task 队列未赋值");
}
Task.WaitAll(tasks.ToArray());
Console.WriteLine("this is main");
});
}
void Call(object a)
{
Thread.Sleep(1000);
Console.WriteLine(a);
}
测试结果


浙公网安备 33010602011771号