C# 异步多线程 示例
时间: 2023-07-29 09:06:43 浏览: 124
以下是一个使用异步多线程的简单示例:
```csharp
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// 使用异步编程模型创建并发执行的异步任务
Task task1 = Task.Run(async () =>
{
await Task.Delay(1000); // 模拟耗时操作
Console.WriteLine("任务1完成");
});
Task task2 = Task.Run(async () =>
{
await Task.Delay(2000); // 模拟耗时操作
Console.WriteLine("任务2完成");
});
// 使用多线程创建并发执行的任务
Thread thread1 = new Thread(() =>
{
Thread.Sleep(3000); // 模拟耗时操作
Console.WriteLine("任务3完成");
});
Thread thread2 = new Thread(() =>
{
Thread.Sleep(4000); // 模拟耗时操作
Console.WriteLine("任务4完成");
});
// 启动异步任务和线程
task1.Start();
task2.Start();
thread1.Start();
thread2.Start();
// 等待所有任务和线程完成
await Task.WhenAll(task1, task2);
thread1.Join();
thread2.Join();
Console.WriteLine("所有任务和线程已完成");
}
}
```
在上面的示例中,我们使用异步编程模型创建了两个异步任务(task1 和 task2),并使用多线程创建了两个线程(thread1 和 thread2)。每个任务和线程都模拟了一些耗时操作。
通过调用 Start() 方法启动异步任务和线程,并使用 await Task.WhenAll() 方法等待所有任务和线程完成。最后输出 "所有任务和线程已完成"。
这个示例展示了如何同时使用异步编程模型和多线程来实现异步多线程。你可以根据自己的需求修改和扩展代码。
希望这个示例对你有所帮助。如果你还有其他问题,请随时提问。
阅读全文