многопоточность — есть ли в C ++ эквивалент WaitforSingleObject?

Мне нужно переписать некоторый код, который использует функцию Windows WaitforSingleObject.

myEvent = CreateEvent( NULL, FALSE, FALSE, szName );
WaitForSingleObject( myEvent, nMilliseconds );

Мне нужно дождаться события или тайм-аута.
Есть ли эквивалент этого в прямом C ++?

Я использую STL C ++ 11, а не любые другие библиотеки, такие как boost.

5

Решение

Вы не можете использовать подпрограммы потоков C ++ 11 с потоками win32 (если только вы не сильно возитесь с реализациями потоков mingw, что я бы не рекомендовал), и нет стандартного C ++, эквивалентного вызову API для конкретной ОС.

Вы можете, однако, использовать потоки C ++ 11 и использовать переменные условия (Ср. ожидание) выполнить то же самое, что WaitForSingleObject делает то есть

  • Подождите, пока объект будет в сигнальном состоянии
  • Подождите, пока не истечет время ожидания

Редактировать: конкретно вам нужно Подожди пока

5

Другие решения


По вопросам рекламы [email protected]