есть ли простой способ сделать что-то после определенной задержки на C++? В python я просто использую frame.after (ms, myFunction), который является приятным и легким - это похоже на гораздо более сложную проблему на C++! Ранее предполагалось, что я использую Sleep(), к сожалению, это не работает, поскольку я пишу мод для Half-Life 2, и если я использую Sleep, тогда вся игра висит на X секунд, а не просто вызывает событие после X секунд. Так есть ли другой способ вызвать функцию после определенной задержки без использования сна?выполнить функцию в C++ после задержки без использования сна
2
A
ответ
0
Почему бы не использовать нить с таймером? Проверить этот сайт: https://codereview.stackexchange.com/questions/40915/simple-multithread-timer
0
В основном у вас есть 2 варианта: IMHO
- создать второй
thread
, который будет спать вместо основногоthread
. - Создайте второй
thread
, который содержит таймер.
Я могу только рекомендовать boosts io_service
Вы можете пройти через все timer tutorials, если вы новичок, чтобы повысить.
Если вы хотите остаться с std
проверки этого link для получения дополнительной информации о std::async
И this для руководства о том, как использовать std::threads
[ 'зЬй :: асинхр()'] (http://en.cppreference.com/w/cpp/thread/async) с помощью 'std :: this_thread :: sleep()'? Это приемлемо? –
Предполагая, что 'frame.after (ms, myFunction)' является частью Python API для модов Half-Life, тогда должен быть эквивалент C++, и это то, что вы хотите. – zwol