ThreadPool 类型提供了几个静态方法,来允许使用者插入一个工作线程的需求。常用的有以下三个静态方法:
static bool QueueUserWorkItem(WaitCallback callback)
static bool QueueUserWorkItem(WaitCallback callback, Object state)
static bool UnsafeQueueUserWorkItem(WaitCallback callback, Object state)
设置、查看线程池的上下限
//设置线程池
ThreadPool.SetMaxThreads(8, 8);//最小也是CPU核数
ThreadPool.SetMinThreads(4, 4);
//获取线程池当前设置 ,默认设置取决于操作系统和CPU
int workerThreads = 0;
int ioThreads = 0;
ThreadPool.GetMaxThreads(out workerThreads, out ioThreads);
Console.WriteLine(String.Format("可创建最大线程数: {0}; 最大 I/O 线程: {1}", workerThreads, ioThreads));
ThreadPool.GetMinThreads(out workerThreads, out ioThreads);
Console.WriteLine(String.Format("最小线程数: {0}; 最小 I/O 线程: {1}", workerThreads, ioThreads));
ThreadPool.GetAvailableThreads(out workerThreads, out ioThreads);
Console.WriteLine(String.Format("可以使用的工作线程: {0}; 可用 I/O 线程: {1}", workerThreads, ioThreads));