我在我的應用程序中使用了ThreadPool
。我已經先通過以下設置線程池的限制:限制線程池線程的數量
ThreadPool.SetMaxThreads(m_iThreadPoolLimit,m_iThreadPoolLimit);
m_Events = new ManualResetEvent(false);
,然後我一直在使用以下
WaitCallback objWcb = new WaitCallback(abc);
ThreadPool.QueueUserWorkItem(objWcb, m_objThreadData);
這裏ABC是函數名排隊的作業,我我在打電話。 在此之後,我做以下,使我的所有線程來1點和主線程接管並繼續進一步
m_Events.WaitOne();
我的線程限制爲3,我面臨的問題是,對inspite線程池限制設置爲3,我的應用程序同時處理超過3個文件,而它應該一次只處理3個文件。請幫我解決這個問題。
你應該檢查SetMaxThreads()的返回值。 – Simone 2011-05-16 13:15:01
除非您知道自己在做什麼,否則最好不要混淆ThreadPool中的線程數。讓運行時處理它。如果您需要限制同時訪問的文件數量,請使用更好的方法 - 比如使用信號量。 – 2011-05-16 13:18:48
Microsoft不允許您設置最大線程
Kostadin
2014-08-15 07:57:38