在不使用睡眠的情况下在延迟之后执行C++中的函数

execute function in C++ after a delay without using sleep

本文关键字:执行 之后 C++ 函数 延迟 情况下      更新时间:2023-10-16

在C++中,有没有一种简单的方法可以在特定的延迟后发生一些事情?在python中,我只使用frame.after(ms,myFunction),这很好也很简单——在C++中这似乎是一个更棘手的问题!之前有人建议我使用Sleep(),不幸的是,这不起作用,因为我正在为《半条命2》编写mod,如果我使用Slep,那么整个游戏将挂起X秒,而不是在X秒后调用事件。那么,有没有其他方法可以在特定延迟后调用函数而不使用睡眠?

基本上你有两个选项imho:

  1. 创建第二个thread,它将睡眠,而不是主thread
  2. 创建第二个包含计时器的thread

我只能推荐提升io_service

如果你是新手,你可能想学习所有的计时器教程。


如果您想继续使用std,请查看此链接以了解有关std::async 的更多信息

这是关于如何使用std::threads 的指南

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