/// <summary> /// 设置线程池大小 /// </summary> /// <param name="iSize"></param> public void SetPoolSize(int iSize) { int iCmpSize = iSize - m_ThreadArrary.Count; if (iCmpSize == 0) { return; } if (iCmpSize > 0) { for (int i = 0; i < iCmpSize; i++) { m_ThreadShutdown.Add(false); RECORD2 aObj = new RECORD2(); aObj.ShutdownIndex = m_ThreadShutdown.Count - 1; aObj.Handle = ThreadHelper.Start(ThreadFuncWork, aObj.ShutdownIndex); m_ThreadArrary.Add(aObj); } } else { while (iCmpSize < 0) { RECORD2 aObj = m_ThreadArrary[m_ThreadArrary.Count - 1]; m_ThreadShutdown[aObj.ShutdownIndex] = true; m_ThreadArrary.RemoveAt(m_ThreadArrary.Count - 1); iCmpSize++; } } }
public ThreadPoolManager(int iTreadMaxNum = 5) { //初始化线程链表 for (int i = 0; i < iTreadMaxNum; i++) { m_ThreadShutdown.Add(false); RECORD2 aObj = new RECORD2(); aObj.ShutdownIndex = i; aObj.Handle = ThreadHelper.Start(ThreadFuncWork, i); m_ThreadArrary.Add(aObj); } }