【发布时间】:2014-02-23 21:03:27
【问题描述】:
我的问题是我有多个线程,它们存储在某个容器中,我需要知道某个位置的线程何时完成。 在 Windows 上,我会执行以下操作:
HANDLE handles[3];
//handles were initialized
DWORD finishingThread = WaitForMultipleObjects(3, handles, false, INFINITE)
有什么办法可以用std::thread达到同样的效果吗?
【问题讨论】:
-
@marcin_j 这个问题不仅仅是提供信息,它可以说是对这个问题的彻底欺骗(或者说它是相反的)。感谢您链接它。对于 OP 来说,不,如果没有您的一些工作,就不是天生的。这种任意的线程退出检测不在线程支持库中,至少我从未见过。
-
如果您在 Windows 上并希望保持更多 C++ 风格,那么 Concurrency Runtime 是一个不错的选择。 Microsoft 的
std::thread和std::async实现是在 VS2013 的基础上构建的。
标签: c++ multithreading stl