我最近发现了 ATL 的 CThreadPool 类并且对这个发现非常满意。这是一个简洁的小类,它将处理让多个工作线程处理一些任务队列的同步语义。这些任务由一些外部进程提供给 CThreadPool 对象。
虽然非常干净整洁,但似乎没有办法确定所有任务是否都已完成。最好的方法是什么?
例如,假设我需要完成 10 个繁重的计算任务,然后继续做其他事情。在我知道任务已经完成之前,我不能继续前进。
因此,我创建了一个具有 10 个线程的 CThreadPool,将任务放入队列,然后将它们转到线程。我怎么知道任务何时完成?
波阿斯