C#从零开始学线程_006_ThreadPool(线程池)


线程池的用途是执行运行时间短的操作。

线程池适用于需要大量短暂的开销大的资源的情形。

事先分配一定的资源,将这些资源放入到资源池。每次需要新的资源,只需从池中获取一个,而不用创建一个新的。当该资源不再被使用时,就将其返回到池中。

 1 internal void Do()
 2 {
 3     ThreadPool.QueueUserWorkItem(AsyncOperation);
 4     Thread.Sleep(1000);
 5 
 6     ThreadPool.QueueUserWorkItem(AsyncOperation, "传入的参数state-1");
 7     Thread.Sleep(1000);
 8 
 9     ThreadPool.QueueUserWorkItem(state =>
10     {
11         Console.WriteLine($"传入的参数state的值为: {state}");
12     }, "传入的参数state-2");
13 
14     Thread.Sleep(TimeSpan.FromSeconds(1));
15 }
16 
17 private void AsyncOperation(object state)
18 {
19     Console.WriteLine($"---------------------: {state?.ToString()}");
20 }