现代应用程序通常需要执行复杂的计算或处理 I/O 操作,这些操作可能会导致主线程阻塞,从而降低用户体验。C# 提供了多线程与异步编程的多种工具,让我们能够高效地并发处理任务。本文将介绍 C# 中的多线程与异步编程,包括 Thread
类、任务并行库、async
和 await
异步编程,以及并行循环和 PLINQ。
1. 线程基础(Thread 类)
在 C# 中,Thread
类用于创建和管理独立的执行路径。每个线程都在单独的 CPU 核心上运行,可以并发处理多个任务。以下是 Thread
类的基本用法:
using System;
using System.Threading;
public class Program
{
public static void PrintNumbers()
{
for (int i = 1; i <= 5; i++)
{
Console.WriteLine(i);
Thread.Sleep(500); // 模拟工作负载
}
}
public static void Main()
{
Thread thread = new Thread(PrintNumbers);
thread.Start(); // 启动新线程
for (int i = 10; i <= 15; i++)
{
Console.WriteLine(i);
Thread.Sleep(500);
}
}
}
在此示例中,主线程和新线程 thread
会并发执行,分别输出 1 到 5 和 10 到 15。<