Liv*_*ive 49
编辑(删除错误的解决方案).编辑(添加此其他选项):
另一种使用它的方法是子类QThread,因为它具有受保护的*睡眠方法.
QThread::usleep(unsigned long microseconds);
QThread::msleep(unsigned long milliseconds);
QThread::sleep(unsigned long second);
Run Code Online (Sandbox Code Playgroud)
这是创建自己的*sleep方法的代码.
#include <QThread>
class Sleeper : public QThread
{
public:
static void usleep(unsigned long usecs){QThread::usleep(usecs);}
static void msleep(unsigned long msecs){QThread::msleep(msecs);}
static void sleep(unsigned long secs){QThread::sleep(secs);}
};
Run Code Online (Sandbox Code Playgroud)
你通过这样做来调用它:
Sleeper::usleep(10);
Sleeper::msleep(10);
Sleeper::sleep(10);
Run Code Online (Sandbox Code Playgroud)
因此,这会给你10微秒,10毫秒或10秒的延迟.如果底层操作系统计时器支持该解决方案.
zmo*_*zmo 26
作为@Live的答案的更新,对于Qt≥5.2,不再需要子类QThread,因为现在睡眠函数是公共的:
静态公众成员
QThread * currentThread()Qt::HANDLE currentThreadId()int idealThreadCount()void msleep(unsigned long msecs)void sleep(unsigned long secs)void usleep(unsigned long usecs)void yieldCurrentThread()
cf http://qt-project.org/doc/qt-5/qthread.html#static-public-members
| 归档时间: |
|
| 查看次数: |
99242 次 |
| 最近记录: |