在 C# 中,`Task` 和 `Thread` 是用于实现并发编程的两种主要机制。它们各有优缺点和适用场景。以下是它们的用法对比和详细说明:
1. Thread 的用法
`Thread` 是 .NET 中用于创建和管理操作系统线程的类。它提供了对线程的直接控制,适合需要精细管理线程的场景。
1.1 创建和启动线程
using System;
using System.Threading;
class Program
{
static void Main()
{
// 创建线程
Thread thread = new Thread(DoWork);
// 启动线程
thread.Start();
Console.WriteLine("主线程继续执行...");
}
static void DoWork()
{
Console.WriteLine("工作线程正在执行...");
Thread.Sleep(2000); // 模拟工作
Console.WriteLine("工作线程完成。");
}
}
1.2 传递参数
Thread thread = new Thread(DoWorkWithParameter);
thread.Start("Hello Thread");
1.3 线程优先级
thread.Priority = ThreadPriority.Highest; // 设置线程优先级
1.4 线程同步
- 使用 `lock` 关键字:
private static readonly object lockObj = new object();
static void DoWork()
{
lock (lockObj)
{