线程
一个线程是可以其它部分独立地执行的程序的一部分。它可以与其他线程同时执行任务。多线程是一种使程序能够执行并发处理的功能,因此一次可以完成多个操作。
例如,你可以使用线程在后台更新计时器或计数器,同时在前台执行其他任务。
多线程应用程序对用户输入的响应速度更快,并且易于扩展,因为开发人员可以在工作负载增加时添加线程。
默认情况下,C#程序有一个线程 - 主程序线程。但是,可以创建辅助线程并用于与主线程并行执行代码。这种线程称为工作线程。
为了控制线程的操作,CLR 将一个函数委托给称为线程调度程序的操作系统。线程调度程序确保为所有线程分配正确的执行时间。它还会检查被阻塞或锁定的线程是否消耗大量 CPU 时间。
.NET Framework System.Threading
命名空间使得使用线程更容易。System.Threading 通过提供许多类和接口来启用多线程。除了为特定线程提供类型和类之外,它还定义了用于保存线程集合,计时器类等的类型。它还通过允许对共享数据的同步访问来提供支持。
Thread
是 System.Threading
命名空间中的主要类。其他类包括 AutoResetEvent
,Interlocked
,Monitor
,Mutex
和 ThreadPool
。
System.Threading
命名空间中的一些代表包括 ThreadStart
,TimerCallback
和 WaitCallback
。
System.Threading
命名空间中的枚举包括 ThreadPriority
,ThreadState
和 EventResetMode
。
在 .NET Framework 4 及更高版本中,通过 System.Threading.Tasks.Parallel
和 System.Threading.Tasks.Task
类,并行 LINQ(PLINQ)
,System.Collections.Concurrent
命名空间中的新并发集合类以及基于任务的新编程模型,使多线程编程变得更加简单和简单。