Csharp 开启多线程 运行多个任务 示例
时间: 2024-12-19 08:16:49 浏览: 5
在C#中,开启多线程并运行多个任务通常通过`Task`类或者`async/await`关键字来实现。这里有一个简单的示例:
```csharp
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// 创建两个任务
Task task1 = RunTaskAsync("Task 1", DoWork1);
Task task2 = RunTaskAsync("Task 2", DoWork2);
// 等待所有任务完成(非阻塞)
await Task.WhenAll(task1, task2);
Console.WriteLine("Both tasks completed.");
}
// 使用async/await的方式异步执行工作方法
static async Task RunTaskAsync(string name, Action work)
{
Console.WriteLine($"Starting {name} on a separate thread...");
// 使用Task.Run创建新的线程并开始执行工作方法
await Task.Run(work);
}
// 工作方法1
private static void DoWork1()
{
Console.WriteLine($"Working on {nameof(DoWork1)} for 5 seconds...");
Thread.Sleep(5000);
}
// 工作方法2
private static void DoWork2()
{
Console.WriteLine($"Working on {nameof(DoWork2)} for 3 seconds...");
Thread.Sleep(3000);
}
}
```
在这个例子中,`RunTaskAsync`方法创建了一个新的线程,并使用`async/await`来启动工作方法。当`Main`函数等待`Task.WhenAll`时,其他任务可以在后台独立运行。
阅读全文