有没有一种简单的方法可以在C++中的特定延迟后让事情发生?在python中,我只使用frame.after(ms,myFunction),它既好又简单——在C++中这似乎是一个更棘手的问题!之前有人建议我使用Sleep(),不幸的是,这不起作用,因为我正在为《半条命2》编写模组,如果我使用Sleep,那么整个游戏会挂起X秒,而不是在X之后调用事件秒。那么有没有另一种方法可以在不使用sleep的情况下在特定延迟后调用函数? 最佳答案 恕我直言,基本上你有2个选择:创建第二个线程,它将代替您的主线程休眠。创建第二个包含计时器的线程。我只
在使用std::this_thread::sleep_for()毫秒及以上时,是否需要考虑任何已知的可移植性问题?在我正在进行的项目中,我希望使用Microsoft的Sleep()到naonsleep()到usleep,具体取决于特定平台上可用的内容。其中一些具有明显的限制,例如在某些平台上不支持1000毫秒或更多的延迟。std::this_thread::sleep_for()是否也有这样的怪癖? 最佳答案 Maximumsleepduration:std::this_thread::sleep_for()这里没有问题。你想睡多久
我正在尝试使用Boost.Asio编写一个非常简单的HTTP服务器。这是代码(几乎与Boost.Asio教程中的示例相同)#include#include#include#include#includeusingboost::asio::ip::tcp;intmain(){try{boost::asio::io_serviceio_service;tcp::acceptoracceptor(io_service,tcp::endpoint(tcp::v4(),12345));for(;;){tcp::socketsocket(io_service);acceptor.accept(so
我试图在调用FuncHelper之前在.WillOnce中做一些sleep。所以我需要类似于以下内容的内容:EXPECT_CALL(*_mock,Func(_,_,_)).Times(1).WillOnce(DoAll(InvokeWithoutArgs(sleep(TimeToSleep)),Invoke(_mock,&M_MyMock::FuncHelper)));是否可以在.DoAll中使用arg调用sleep()?C++98是首选。更新:该解决方案基于@Smeeheey的回答并使用C++98。templatevoidSleep(){sleep(N);}...EXPECT_CAL
我使用opengl制作的游戏有点问题。游戏有时会半速运行,有时会正常运行。我不认为是opengl导致了问题,因为它在我的计算机上以14,000fps的速度运行。(即使以半速运行)这让我相信是“游戏计时器”导致了问题。游戏计时器在单独的线程上运行,并被编程为在其“循环”结束时通过Sleep(5)调用暂停。如果我删除Sleep(5)调用,它运行得如此之快以至于我几乎看不到屏幕上的Sprite。(可预测的行为)我尝试在Render()线程的末尾(也在它自己的线程上)抛出一个Sleep(16)。此操作应将fps限制在62左右。请记住,该应用程序有时以预期速度运行,有时以一半速度运行(我在我拥有
根据对我的previousquestion的回答,我正在尝试使用sleep_until()但找不到告诉我如何在实际时间(例如1400:00h)中使用它的教程。有这样的例子:std::this_thread::sleep_until(system_clock::now()+seconds(10));,但我想要一些能让我指定时钟的东西时间。这应该是什么格式?我会很感激任何例子。 最佳答案 要等到指定的时钟时间,你需要得到一个代表那个时钟时间的time_t,然后使用std::chrono::system_clock::from_time_
考虑以下程序:#include#includeintmain(){std::this_thread::sleep_until(std::chrono::steady_clock::now()-std::chrono::seconds(10));return0;}当用GCC4.8.5编译时,它会挂起。用GCC4.9及以上或clang3.4及以上编译时,立即返回,为什么会挂?据我了解,GCC4.8.5完全支持C++11标准。 最佳答案 这是一个已确认的错误,已在gcc4.9中修复。https://gcc.gnu.org/bugzilla
我正处于使用gcc在Linux下将一些遗留C++代码升级到C++11的阶段。在尝试设置优先级时,我想到了以下问题。将对usleep的调用与对std::this_thread::sleep_for的调用交换是否有任何优势?在我谈论的代码中,正在运行的线程应该等待很短的时间。因此我不需要任何高级功能,例如中断sleep。 最佳答案 是的。std::this_thread::sleep_for由C++11标准指定,因此是任何具有C++11编译器和标准库的系统上的可移植解决方案。usleep由POSIX.1-2001指定(并宣布已过时!),
我找到了std::this_thread::sleep_for可以处理时间单位s。std::this_thread::sleep_for(2s);但是我不知道2s中的s是什么。 最佳答案 Whatissinstd::this_thread::sleep_for(2s)?s是一个用户定义的文字使得2schrono::second类型的文字值.内置文字您可能熟悉integerliterals和floatingliterals;这些是内置后缀:+--------+---------+---------------+|Suffix|Exam
在时间等待场景中:oursoftwareworksinthebackground,andsynchronizesdatawiththeserverinevery20-30minutes.我想用std::this_thread::sleep_for但我的上级强烈反对任何形式的sleep功能。他推荐std::condition_variable::wait_until(lock,timeout-time,pred)不知道在这种情况下sleep_for有什么缺点吗? 最佳答案 正如评论中已经指出的那样,这仅取决于您的用例。两者之间的主要区