在没有使用睡眠的延迟之后在C ++中执行函数

时间:2014-11-06 22:06:46

标签: c++ delay delayed-execution

有一种简单的方法可以在C ++中出现特定延迟后发生一些事情吗? 在python中,我只使用frame.after(ms,myFunction)这很好而且简单 - 这在C ++中似乎是一个非常棘手的问题! 之前有人建议我使用Sleep(),不幸的是,这并不起作用,因为我正在为Half-Life 2编写一个mod,如果我使用Sleep,那么整个游戏会挂起X秒而不是仅仅调用事件在X秒之后。 那么有没有另一种方法在特定延迟后调用函数而不使用睡眠?

2 个答案:

答案 0 :(得分:1)

基本上你有2个选项imho:

  1. 创建第二个thread,而不是主thread
  2. 创建第二个包含计时器的thread
  3. 我只能推荐boosts io_service

    如果您是新手,可能需要浏览所有timer tutorials


    如果您想继续std,请查看此link,了解有关std::async

    的更多信息

    this有关如何使用std::threads

    的指南

答案 1 :(得分:0)

为什么不使用带计时器的线程? 查看此网站:https://codereview.stackexchange.com/questions/40915/simple-multithread-timer