我在我的应用程序中使用了ThreadPool
。我首先通过以下方式设置了线程池的限制:
ThreadPool.SetMaxThreads(m_iThreadPoolLimit,m_iThreadPoolLimit);
m_Events = new ManualResetEvent(false);
然后,我通过以下方式将作业排队:
WaitCallback objWcb = new WaitCallback(abc);
ThreadPool.QueueUserWorkItem(objWcb, m_objThreadData);
这里的abc是我正在调用的函数名称。 之后,我要做以下操作,以便所有线程都汇聚到一个点上,主线程接管并继续执行。
m_Events.WaitOne();
我的线程限制是3。我面临的问题是,尽管线程池限制为3,但我的应用程序正在同时处理超过3个文件,而实际上它只应该一次处理3个文件。请帮我解决这个问题。
SetMaxThreads()
的返回值。 - Simone