似乎QRunnable
没有sleep
方法
如何在QThread::sleep
?
QRunnable
之类的方法
答案 0 :(得分:9)
请勿使用平台特定功能。 Qt的巨大优势在于它非常便于携带。不要仅使用sleep
您可以在 Qt 5 中使用QThread::sleep
或QRunnable
中的QtConcurent
,因为它在那里被公开:
void QThread :: sleep(unsigned long secs) [静态保护] // Qt 4.8
void QThread :: sleep(unsigned long secs) [静态] // Qt 5.0
您可以使用互斥锁作为早期Qt版本的解决方法:
QMutex m(QMutex::NonRecursive);
m.lock();
m.tryLock(timeout);
Mutex将无法以递归方式锁定并等待超时。
答案 1 :(得分:3)
只需使用::sleep()
它不在Qt中就是POSIX.1-2001函数。
此外,您可以尝试使用此代码,因为QThread::sleep()
会调用::Sleep()
class mythreadhelper : public QThread
{
public:
static void mysleep(int ms)
{
return sleep(ms);
}
};
此问题已在Qt Centre得到了诺基亚认证Qt开发者的回复。