好像QRunnable
没有sleep
方法。
我怎样才能像QThread::sleep
在 a 中那样调用方法QRunnable
?
问问题
2157 次
2 回答
9
不要使用平台特定的功能。Qt 的最大优点是它非常容易移植。不要毁了它
sleep
您可以使用
QThread::sleep
fromQRunnable
或QtConcurent
仅在Qt 5中使用,因为它在那里被声明为 public:
void QThread::sleep ( unsigned long secs ) [静态保护] // Qt 4.8
void QThread::sleep(unsigned long secs) [静态] // Qt 5.0
您可以使用 mutex 作为早期 Qt 版本的解决方法:
QMutex m(QMutex::NonRecursive);
m.lock();
m.tryLock(timeout);
互斥锁将无法递归锁定并等待超时。
于 2013-06-04T13:18:57.700 回答
3
只是简单地使用::sleep()
它不在 Qt 中,它是一个 POSIX.1-2001 函数。
你也可以试试这个代码,因为QThread::sleep()
调用::Sleep()
class mythreadhelper : public QThread
{
public:
static void mysleep(int ms)
{
return sleep(ms);
}
};
诺基亚认证 Qt 开发人员在Qt 中心回答了这个问题。
于 2013-06-04T02:07:16.380 回答