我有vector<HANDLE>
。我想等待所有人完成。我不想将它们复制到数组中。无论如何使用WaitForMultpleObjects
这样做有什么好处,而不是在循环中使用WaitForSingleObject
?
谢谢!
答案 0 :(得分:2)
首先,在我所知道的每个C ++编译器中,向量在内部是一个数组,您可以使用&yourvector[0]
获得指向数组的指针。在C ++ 11中,我认为标准也需要这种行为。所以没有必要复制。
至于好处,WaitForMultipleObjects
将减少你醒来的次数,节省一些少量的CPU时间。它还将同时以原子方式获取所有HANDLE
- 如果你有一堆互斥或信号量对象并且需要全部锁定它们,这可能很重要。