c# 开启多个线程 带所有进程完成后,开启主进程
时间: 2024-12-15 19:24:07 浏览: 5
在C#中,你可以使用Thread类或Task类来开启多个线程并发执行任务。如果你想在所有子线程完成后再执行主线程的任务,你可以使用Task.Run或Task.Factory.StartNew配合Task.WaitAll或者Task.WhenAll来管理。以下是一个基本的示例:
```csharp
using System;
using System.Threading.Tasks;
class Program
{
static async Task WorkerThread(int id)
{
Console.WriteLine($"Worker Thread {id} started.");
await Task.Delay(1000); // 假设这是一个耗时操作
Console.WriteLine($"Worker Thread {id} finished.");
}
static async Task Main()
{
const int numThreads = 5;
// 启动子线程
var tasks = new Task[numThreads];
for (int i = 0; i < numThreads; i++)
{
tasks[i] = Task.Run(() => WorkerThread(i));
}
// 等待所有子线程完成
await Task.WhenAll(tasks);
Console.WriteLine("All worker threads have finished. Starting main process...");
// 主线程任务
Console.WriteLine("Main process started.");
await Task.Delay(2000);
Console.WriteLine("Main process finished.");
}
}
```
在这个例子中,`WorkerThread`函数代表每个子线程的工作,`Main`函数首先启动一组子线程,然后等待它们全部完成,最后才执行主线程的部分。
阅读全文