多线程程序设计是一个庞大的主题,而本文试图在
.net Framework
环境下,使用最新的
C#
语言来描述多线程程序的概貌。希望本文能有助于大家理解线程这种概念,理解多线程的用途,理解它的
C#
实现方法,理解线程将为我们带来的好处和麻烦。
C#
是一种新的语言,因此它的线程机制也有许多独特的地方,希望大家能通过本文清楚地看到这些,从而可以对线程进行更深入的理解和探索。
附表:
ThreadPool
提供一个线程池,该线程池可用于发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。 下表列出了由 ThreadPool类型公开的成员。
公共方法
名称
|
说明
|
已重载。
将操作系统句柄绑定到
ThreadPool
。
| |
Equals
|
已重载。
确定两个
Object
实例是否相等。
(从
Object
继承。)
|
GetHashCode
|
用作特定类型的哈希函数。
GetHashCode
适合在哈希算法和数据结构(如哈希表)中使用。
(从
Object
继承。)
|
检索可以同时处于活动状态的线程池请求的数目。所有大于此数目的请求将保持排队状态,直到线程池线程变为可用。
| |
检索线程池在新请求预测中维护的空闲线程数。
| |
GetType
|
获取当前实例的
Type
。
(从
Object
继承。)
|
已重载。
将方法排入队列以便执行。此方法在有线程池线程变得可用时执行。
| |
ReferenceEquals
|
确定指定的
Object
实例是否是相同的实例。
(从
Object
继承。)
|
设置可以同时处于活动状态的线程池的请求数目。所有大于此数目的请求将保持排队状态,直到线程池线程变为可用。
| |
设置线程池在新请求预测中维护的空闲线程数。
| |
ToString
|
返回表示当前
Object
的
String
。
(从
Object
继承。)
|
将重叠的
I/O
操作排队以便执行。
| |
注册一个等待
WaitHandle
的委托。
| |
已重载。
将指定的委托排队到线程池。
|
公共构造函数
名称
|
说明
|
已重载。初始化 Timer 类的新实例。
|
公共方法
|
名称
|
说明
|
|
已重载。 更改计时器的启动时间和方法调用之间的间隔。
| |
|
CreateObjRef
|
创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (从 MarshalByRefObject 继承。)
|
|
已重载。 释放由 Timer的当前实例使用的所有资源。
| |
|
Equals
|
已重载。 确定两个 Object 实例是否相等。 (从 Object 继承。)
|
|
GetHashCode
|
用作特定类型的哈希函数。GetHashCode 适合在哈希算法和数据结构(如哈希表)中使用。 (从 Object 继承。)
|
|
GetLifetimeService
|
检索控制此实例的生存期策略的当前生存期服务对象。 (从 MarshalByRefObject 继承。)
|
|
GetType
|
获取当前实例的 Type。 (从 Object 继承。)
|
|
InitializeLifetimeService
|
获取控制此实例的生存期策略的生存期服务对象。 (从 MarshalByRefObject 继承。)
|
|
ReferenceEquals
|
确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。)
|
|
ToString
|
返回表示当前 Object 的 String。 (从 Object 继承。)
|