C#如何等待Task线程执行完后销毁线程
时间: 2024-06-14 13:03:22 浏览: 129
在C#中,可以使用Task.WaitAll()方法等待所有的Task线程执行完毕后再销毁线程。具体实现方法如下:
```csharp
Task[] tasks = new Task[3];
tasks[0] = Task.Factory.StartNew(() => {
Console.WriteLine($"Task 1 开启线程{Thread.CurrentThread.ManagedThreadId}处理业务");
Thread.Sleep(2000);
});
tasks[1] = Task.Factory.StartNew(() => {
Console.WriteLine($"Task 2 开启线程{Thread.CurrentThread.ManagedThreadId}处理业务");
Thread.Sleep(2000);
});
tasks[2] = Task.Factory.StartNew(() => {
Console.WriteLine($"Task 3 开启线程{Thread.CurrentThread.ManagedThreadId}处理业务");
Thread.Sleep(2000);
});
Task.WaitAll(tasks); //等待所有Task线程执行完毕
Console.WriteLine("所有Task线程执行完毕,销毁线程");
```
上述代码中,首先创建了3个Task线程,并将它们存储在一个Task数组中。然后使用Task.WaitAll()方法等待所有Task线程执行完毕。最后输出“所有Task线程执行完毕,销毁线程”。这样就可以保证所有Task线程执行完毕后再销毁线程。
阅读全文