请问怎样清空ThreadPool中的所有线程?

number321 2012-05-28 02:16:41
当我使用 ThreadPool.QueueUserWorkItem 将操作加入到线程池中时,如果在正常情况下,等到线程池队列中的线程全部执行完后,可以再次使用它。

但如果当ThreadPool中有线程正在执行时,我想强行中断它,并且还要在下一次使用它,应该怎样操作呢。
怎样把ThreadPool中的线程清空,将它重置为一个空的线程池?
...全文
1099 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qldsrx 2012-05-28
  • 打赏
  • 举报
回复
线程池本身就是不能控制的,你要精确控制线程就必须自定义线程数组。
happyrain2010 2012-05-28
  • 打赏
  • 举报
回复
直接用线程做就行了呗
蔡袅 2012-05-28
  • 打赏
  • 举报
回复
线程池线程怎么能清空呢?那还叫线程池么?
线程池交由CLR管理,“多退少补”,“前赴后继”,“开源节流”,总是会维持最佳的平衡,
不管怎样不能小于你处理器的数目
线程池有个最少工作线程,最多工作线程,还有自由线程,这些设置都只能给定个活跃数范围,绝不能清空
假设能清空,线程池马上补上

倒是连接池可以清空,毕竟是可以手动管理:
 SqlConnection.ClearAllPools();
Soloboy1020 2012-05-28
  • 打赏
  • 举报
回复
用第三方的线程池吧,或者自己写一个

系统的线程池很多模块都会用到,并不一定是你显示调用ThreadPool.QueueUserWorkItem才会使用到的
sd1232123 2012-05-28
  • 打赏
  • 举报
回复
这个好像是不行,你可以用一个成熟的线程池,smartpool 开源的。。你想的到的功能都封装好了

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧