Каковы преимущества использования WaitForMultipleObjects вместо WaitForSingleObject в цикле? - PullRequest
2 голосов
/ 18 декабря 2011

У меня есть vector<HANDLE>.Я хочу подождать, пока все они закончат.Я не хочу копировать их в массив.Каковы преимущества, если вы все равно делаете это и используете WaitForMultpleObjects вместо использования WaitForSingleObject в цикле, если таковой имеется?

1 Ответ

2 голосов
/ 18 декабря 2011

Во-первых, в каждом известном мне компиляторе C ++ векторы являются массивом, и вы можете получить указатель на массив с помощью &yourvector[0]. В C ++ 11 я считаю, что такое поведение также требуется стандартом. Так что копировать не нужно.

Что касается выгоды, WaitForMultipleObjects сократит количество раз, когда вы просыпаетесь, экономя некоторое небольшое количество процессорного времени. Он также будет атомарно получать все HANDLE с одновременно - если у вас есть куча объектов мьютекса или семафора и вам нужно заблокировать их все, это может быть важно.

...