1. 使用 Thread 类:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 创建并启动新线程
Thread newThread = new Thread(WorkerMethod);
newThread.Start();
// 主线程继续执行其他工作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main Thread: " + i);
Thread.Sleep(1000);
}
Console.ReadLine();
}
// 新线程执行的方法
static void WorkerMethod()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker Thread: " + i);
Thread.Sleep(1000);
}
}
}
2. 使用 ThreadPool:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 使用线程池启动新任务
ThreadPool.QueueUserWorkItem(WorkerMethod);
// 主线程继续执行其他工作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main Thread: " + i);
Thread.Sleep(1000);
}
Console.ReadLine();
}
// 线程池中执行的方法
static void WorkerMethod(object state)
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker Thread: " + i);
Thread.Sleep(1000);
}
}
}
3. 使用 Task Parallel Library (TPL):
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 使用 Task 启动新任务
Task.Run(() => WorkerMethod());
// 主线程继续执行其他工作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main Thread: " + i);
Task.Delay(1000).Wait();
}
Console.ReadLine();
}
// Task 执行的方法
static void WorkerMethod()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker Thread: " + i);
Task.Delay(1000).Wait();
}
}
}
4. 使用 async/await 异步编程:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// 异步方法
Task workerTask = WorkerMethodAsync();
// 主线程继续执行其他工作
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Main Thread: " + i);
await Task.Delay(1000);
}
// 等待异步方法完成
await workerTask;
Console.ReadLine();
}
// 异步方法
static async Task WorkerMethodAsync()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Worker Thread: " + i);
await Task.Delay(1000);
}
}
}
以上是一些简单的多线程示例。选择适当的多线程方式取决于具体的需求和情境,确保在多线程编程中处理好线程同步和避免竞态条件等问题。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6371/C#