首页 > 解决方案 > 在所有工作项完成后关闭线程池

问题描述

我在这里使用 Windows 线程池 API 。

现在我从我的主线程传递了一条到我的线程池的路径。然后我的主线程等待WaitForThreadpoolWorkCallbacks在工作项上使用。然后池确实在该目录中的每个单独文件上工作。这很糟糕,因为它基本上是使用一个线程来处理整个目录。

需要发生的是我的主线程循环遍历目录并使用 and 将每个文件放入线程池队列CreateThreadpoolWorkSubmitThreadpoolWork

问题:

如果我让我的主线程将项目(文件路径)放入队列中,我将需要创建另一个队列来跟踪所有PTP_WORK结构,以便我可以检查它们并等待它们。

除了创建一个链表之外,是否可以只在线程池上等待并以某种方式向我报告没有线程在工作?然后我就知道是时候关闭了。

标签: cwindowsmultithreading

解决方案


推荐阅读