作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近发现了 ATL 的 CThreadPool 类,对此发现感到非常高兴。这是一个简洁的小类,它将处理让多个工作线程处理一些任务队列的同步语义。这些任务由一些外部进程提供给 CThreadPool 对象。
虽然非常整洁干净,但似乎没有办法查明是否所有任务都已完成。最好的方法是什么?
例如,假设我需要完成 10 项繁重的计算任务,然后继续做其他事情。在我知道任务已经完成之前,我无法继续前进。
因此,我创建了一个包含 10 个线程的 CThreadPool,将任务放入队列中,然后让它们转到线程。我怎么知道任务何时完成?
波阿斯
最佳答案
我认为您需要让工作对象的 Execute()
方法使用“主”线程可以监控的某种形式的 IPC。例如让 Execute()
方法在主线程可以等待的信号量上调用 ReleaseSemaphore()
并计算等待完成的次数。或者,线程池工作人员可以发布一条消息,表明他们已完成一个工作项到主线程从中获取消息的消息队列。
关于c++ - 如何知道 CThreadPool 的工作何时完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617938/
我最近发现了 ATL 的 CThreadPool 类,对此发现感到非常高兴。这是一个简洁的小类,它将处理让多个工作线程处理一些任务队列的同步语义。这些任务由一些外部进程提供给 CThreadPool
我最近发现了 ATL 的 CThreadPool 类,对此发现感到非常高兴。这是一个简洁的小类,它将处理让多个工作线程处理一些任务队列的同步语义。这些任务由一些外部进程提供给 CThreadPool
我是一名优秀的程序员,十分优秀!