2014-11-06 2 views
2

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

+1

[ 'зЬй :: асинхр()'] (http://en.cppreference.com/w/cpp/thread/async) с помощью 'std :: this_thread :: sleep()'? Это приемлемо? –

+0

Предполагая, что 'frame.after (ms, myFunction)' является частью Python API для модов Half-Life, тогда должен быть эквивалент C++, и это то, что вы хотите. – zwol

ответ

0

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

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

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

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


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

И this для руководства о том, как использовать std::threads

 Смежные вопросы

  • Нет связанных вопросов^_^