ThreadPool.QueueUserWorkItem启动慢
一、问题描述
ThreadPool.QueueUserWorkItem启动慢,在项目过程中发现当线程数量达到一定量的时候发线线程启动速度 慢,影响了正常的实时性业务。
二、解决方法
加入 ThreadPool.SetMinThreads(1000, 1000) 后,整个进程启动变块。如图1 和图2 ,变快了。
图1
图2
demo :
static void Main(string[] args) { ThreadPool.SetMinThreads(1000, 1000); Console.WriteLine("开始第1个五十线程"); for (int i = 0; i < 50; i++) { Console.WriteLine("准备开始第1个五十线程,线程" + i); ThreadPool.QueueUserWorkItem((object o) => { try { var item = o as Tuple<int>; Console.WriteLine("开始第1个五十线程,线程"+item.Item1); Thread.Sleep(10000); } catch (Exception e) { } }, new Tuple<int>(i)); }