.NET 平台下的多线程与并行编程指南
1. 理解 CLR 线程池
在使用委托类型异步调用方法(通过 BeginInvoke() 方法)时,CLR 并非每次都创建全新的线程。为提高效率,委托的 BeginInvoke() 方法会利用运行时维护的工作线程池。 System.Threading 命名空间中的 ThreadPool 类可让我们与这些等待的线程池进行交互。
若要将方法调用加入线程池的工作线程队列进行处理,可使用 ThreadPool.QueueUserWorkItem() 方法。该方法有重载,除了 WaitCallback 委托实例外,还可指定一个可选的 System.Object 用于自定义状态数据:
public static class ThreadPool
{
...
public static bool QueueUserWorkItem(WaitCallback callBack);
public static bool QueueUserWorkItem(WaitCallback callBack,
object state);
}
WaitCallback 委托可指向任何以 System.Object 为唯一参数(代表可选状态数据)且无返回值的方法。若调用 Q
超级会员免费看
订阅专栏 解锁全文
555

被折叠的 条评论
为什么被折叠?



