概述除了基础的 lock 和 Monitor,.NET 还提供专为异步场景设计的同步原语,以及一些高级模式。 SemaphoreSlim(异步等待)SemaphoreSlim 支持异步等待,是进程内异步限流的首选。 基础用法12345...
C# 异步编程 - async await 详解
概述async/await 是 C# 5.0 引入的异步编程模型,让异步代码看起来和同步代码相似,大幅简化异步编程。 基础概念async 关键字标记方法为异步方法,允许使用 await。 123456789101112131...
C# 异步编程模式 - EAP、APM 与 TAP
概述.NET 历史上共有三种异步编程模式: APM (Asynchronous Programming Model) - .NET 1.0,基于 BeginXXX/EndXXX EAP (Event-based Async...
C# 任务取消 - CancellationToken 完全指南
概述CancellationToken 是 .NET 中标准的协作式取消机制。它允许一个线程向另一个线程发出取消信号,被取消的任务可以优雅地响应并清理资源。 基础使用CancellationTokenSource 与 Token123...
C# 线程安全集合 - Concurrent Collections
概述System.Collections.Concurrent 命名空间提供了线程安全的集合类。在多线程环境中使用这些集合可以避免手动加锁,提升性能。 ConcurrentDictionary<TKey, TValue>线...
C# 线程同步 - lock 与 Monitor
概述多线程访问共享资源时可能出现数据不一致。lock 和 Monitor 用于确保同一时刻只有一个线程进入临界区。 lock 语句lock 是最简单的同步方式。 12345678910private static readonly o...
C# 跨进程同步 - Mutex 与 Semaphore
概述Mutex 和 Semaphore 是内核同步对象,支持跨进程同步。相比 lock/Monitor(用户态),它们有更大的开销但功能更强。 Mutex(互斥体)Mutex 确保同一时刻只有一个线程(或进程)拥有资源。 进...
C# 并行编程 - Parallel 与 PLINQ
概述System.Threading.Tasks 命名空间提供 Parallel 类和 PLINQ(并行 LINQ),简化数据并行和任务并行的实现。它们自动将工作分配到多个线程。 Parallel.For并行 for 循环,适合迭代次...
C# 线程详解 - Thread 类
概述System.Threading.Thread 是 .NET 中最基础的线程操作类。通过 Thread 类可以创建、启动、暂停、恢复和终止线程。 创建和启动线程基本创建方式12345678910111213141516171819...
C# 线程池与 Task - 高效并发编程
概述线程池(ThreadPool)和 Task 是 .NET 中推荐的并发编程方式。它们简化了线程管理,避免频繁创建销毁线程的开销。 线程池 (ThreadPool)线程池维护一组工作线程,任务到来时分配空闲线程执行。 基础使用123...