C++ 如何在无人值守的房间睡觉?
似乎C++ 如何在无人值守的房间睡觉?,c++,qt,C++,Qt,似乎QRunnable没有sleep方法。 如何在QRunnable中调用类似QThread::sleep的方法?只需使用::sleep()它不在Qt中,而是POSIX.1-2001函数 您还可以尝试此代码,因为QThread::sleep()调用::sleep() 诺基亚认证的Qt开发者在会议上回答了这个问题 不要使用特定于平台的功能。Qt的最大优点是它非常容易携带。不要因为睡眠而毁了它 class mythreadhelper : public QThread { public:
QRunnable
没有sleep
方法。如何在
QRunnable
中调用类似QThread::sleep
的方法?只需使用::sleep()
它不在Qt中,而是POSIX.1-2001函数
您还可以尝试此代码,因为QThread::sleep()
调用::sleep()
诺基亚认证的Qt开发者在会议上回答了这个问题
class mythreadhelper : public QThread
{
public:
static void mysleep(int ms)
{
return sleep(ms);
}
};
QThread::sleep
fromQRunnable
或QtConcurent
,因为在那里声明为public:
QMutex m(QMutex::NonRecursive);
m.lock();
m.tryLock(timeout);
互斥锁将无法递归锁定,并将等待超时。如何调用
::sleep()
?如果查看上面的代码,它将在以下行中调用:返回睡眠(ms)代码>。所以只需输入sleep()
并将毫秒数放在括号中。:
表示它在全局范围内,并且是可选的。系统或操作系统功能通常在全局范围内,有时只是为了将这些功能与成员功能区分开来。有点像有些人将this->
放在他们的成员函数调用前面。不完全是这样QThread::sleep
睡眠数秒。posix的::sleep
也是如此。但是,在Windows上::Sleep
会休眠若干毫秒。@CDT:您应该使用QThread方法,因为它与平台无关。仅对于Windows,Windows.h中有::Sleep