线程池线程数量的问题

yzbsd 2007-10-11 12:30:17
在使用线程池的时候,辅助线程数设置100,完成线程数设为100,但是用
ThreadPool.QueueUserWorkItem(new WaitCallback(TcpClient.ConnectServer), sMsg)开启了100个线程之后
,如果再用ThreadPool.QueueUserWorkItem(new WaitCallback(ConnectServer), sMsg)开启新任务时,线程不再执行,我用ThreadPool.GetAvailableThreads(out nFuZhu,out nComplete)察看了辅助线程的数目是0。如何让已经完成的辅助线程销毁,重新执行任务?
注:TcpClient.ConnectServer是连接服务器的方法,我要实现连接多个服务器并返回信息
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzbsd 2007-10-11
  • 打赏
  • 举报
回复
完成线程这个名词不太正确,应该是“异步I/O线程”
yzbsd 2007-10-11
  • 打赏
  • 举报
回复
现在加了ManualResetEvent,解决了阻塞问题,辅助线程可以工作了。又出现了新问题,当完成线程变为0的时候,线程池也不能继续执行任务了,这应该如何解决呢
wzd24 2007-10-11
  • 打赏
  • 举报
回复
所有的线程都被占用了,而且被阻塞了。
cyy1981 2007-10-11
  • 打赏
  • 举报
回复
你那个一直在占用,用完了就手动释放吧
yzbsd 2007-10-11
  • 打赏
  • 举报
回复
那个方法是开启一个socket短连接,从服务器查询消息之后马上关闭socket,然后Dispose销毁socket所在的类实例
soaringbird 2007-10-11
  • 打赏
  • 举报
回复
你那线程方法是死循环吗?
不是的话,如果执行完毕就能退出,死循环就不行了

110,545

社区成员

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

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

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