gpt4 book ai didi

c++ - 以毫秒为单位花费时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:58 25 4
gpt4 key购买 nike

我在 unistd.h 中找到了 usleep 函数,我认为在每个 Action 之前等待一段时间是有用的。但我发现如果线程没有收到任何信号,它就会进入休眠状态。例如,如果我按下一个按钮(我正在使用 OpenGL,但问题更具体是关于 time.h 和 unistd.h),线程被唤醒,但我没有得到我想要的。在 time.h 中有接受整数的 sleep 函数,但整数太多(我想等待 0.3 秒),所以我使用 usleep。我问是否有一个以毫秒为单位的函数(来自任何 GNU 或任何库)。它应该像 time() 一样工作,但返回的是毫秒而不是秒。这可能吗?

最佳答案

如果你有提升,你可以这样做:

#include <boost/thread.hpp>

int main()
{
boost::this_thread::sleep(boost::posix_time::millisec(2000));
return 0;
}

如您在代码中所见,这个简单示例休眠了 2000 毫秒。

编辑:

好吧,我以为我理解了这个问题,但后来我看了评论,现在我不再那么确定了。

也许您想知道自某个点/事件以来已经过去了多少毫秒?如果是这种情况,那么您可以执行以下操作:

#include <boost/chrono.hpp>
#include <boost/thread.hpp>
#include <iostream>


int main()
{
boost::chrono::high_resolution_clock::time_point start = boost::chrono::high_resolution_clock::now();
boost::this_thread::sleep(boost::posix_time::millisec(2000));
boost::chrono::milliseconds ms = boost::chrono::duration_cast<boost::chrono::milliseconds> (boost::chrono::high_resolution_clock::now() - start);
std::cout << "2000ms sleep took " << ms.count() << "ms " << "\n";
return 0;
}

(请原谅排长队)

关于c++ - 以毫秒为单位花费时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com