加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 限制线程池线程的数量

发布时间:2020-12-15 23:58:58 所属栏目:百科 来源:网络整理
导读:我在我的应用程序中使用 ThreadPool .我首先使用以下命令设置线程池的限制: ThreadPool.SetMaxThreads(m_iThreadPoolLimit,m_iThreadPoolLimit);m_Events = new ManualResetEvent(false); 然后我使用以下内容排队 WaitCallback objWcb = new WaitCallback(a
我在我的应用程序中使用 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.我面临的问题是,尽管线程池限制设置为3,我的应用程序同时处理3个以上的文件,而它一次只能处理3个文件.请帮我解决这个问题.

解决方法

你用的是什么类型的电脑?

从MSDN起

You cannot set the number of worker
threads or the number of I/O
completion threads to a number smaller
than the number of processors in the
computer.

如果你有4个核心,那么你可以拥有的最小核心是4个核心.

另请注意:

If the common language runtime is
hosted,for example by Internet
Information Services (IIS) or SQL
Server,the host can limit or prevent
changes to the thread pool size.

如果这是由IIS托管的网站,则您也无法更改线程池大小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读