QueueUserWorkItem启动的线程池如何在关闭时等待所有线程安全退出?

AutoWalk 2010-12-26 08:12:01
QueueUserWorkItem使用非常简单,但是当程序要关闭时,如何才能保证线程池中已经没有线程正在工作.
我考虑了每个工作线程开始工作是用一个事件对象或者其他计数器之类的,但这很浪费效率,而且也不是百分百保险,有没有其他更完美的解决方案?
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yao-debo 2011-01-11
  • 打赏
  • 举报
回复
这种情况下, 是必须要自己处理的;
"我考虑了每个工作线程开始工作是用一个事件对象或者其他计数器之类的,但这很浪费效率,而且也不是百分百保险"--- , 就使用事件对象, 怎么不保险, 要线程同步, 浪费是不能避免的.
AutoWalk 2010-12-26
  • 打赏
  • 举报
回复
QueueUserWorkItem创建的线程,没有返回线程句柄的.
arong1234 2010-12-26
  • 打赏
  • 举报
回复
你必须记录每个线程的句柄,然后再退出前用WaitForMultipleObjects来等待他们退出

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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