本系列文章来源gkarch

这个专题翻译自 Joseph AlbahariThreading in C#
它分为 5 个部分,深入浅出地讲述多线程在 C# 中的使用。它可以帮助你解决一些棘手的问题,例如:线程安全、何时使用 Abort等待句柄 vs Wait 和 Pulse、使用线程池BackgroundWorker内存屏障以及非阻塞同步构造。并且详细介绍了 Framework 4.0 中加入的 PLINQParallel 以及任务并行等概念及其使用方法。

第 1 部分 - 基础知识

介绍 C# 中多线程的基础知识,包括多线程的概念、创建启动线程及线程池的使用。

第 2 部分 - 同步基础

介绍 C# 中线程同步的基础知识,包括同步的概念、同步构造(主要介绍锁构造和信号构造)以及线程安全。

第 3 部分 - 使用多线程

介绍 C# 中多线程的使用,包括基于事件的异步模式(EAP)、BackgroundWorker的使用、线程中断和中止的概念、取消标记、延迟初始化、线程局部存储(TLS)以及定时器。

第 4 部分 - 高级多线程

介绍 C# 中多线程的高级技术,包括非阻塞同步、使用WaitPulse进行信号同步、读写锁、线程的挂起和恢复以及中止线程的几种方法。

第 5 部分 - 并行编程

介绍 C# 中的并行编程,包括 PLINQ、Parallel 类以及Task(任务并行)。

所有代码均要通过刻意的练习才能深入理解。