выполнить функцию в C ++ после задержки без использования сна

Есть ли простой способ заставить что-то произойти после определенной задержки в C ++?
В Python я просто использую frame.after (ms, myFunction), что приятно и просто — это кажется гораздо более сложной задачей в C ++!
Ранее предлагалось использовать Sleep (), к сожалению, это не работает, поскольку я пишу мод для Half-Life 2, и если я использую Sleep, то вся игра зависает на X секунд, а не просто вызывает событие после X секунд.
Так есть ли другой способ вызова функции после определенной задержки без использования сна?

4

Решение

В основном у вас есть 2 варианта imho:

  1. Создать второй thread который будет спать вместо вашего основного thread,
  2. Создать второй thread который содержит таймер.

Я могу только рекомендовать повышает io_service

Вы можете пройти через все таймеры если вы новичок, чтобы повысить.


Если вы хотите остаться с std Проверь это ссылка на сайт для получения дополнительной информации о std::async

А также этот для руководства о том, как использовать std::threads

1

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

Почему бы не использовать поток с таймером?
Проверьте этот сайт: https://codereview.stackexchange.com/questions/40915/simple-multithread-timer

0

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