QThread睡在主线程上

时间:2014-02-04 15:47:30

标签: multithreading qt qt4 sleep simplify

我需要在主线程上运行QThread :: usleep()(出于各种原因) 但是,usleep是静态保护的。

我想在没有包装器的情况下使用QThread的usleep函数(我目前正在使用unistd.h的usleep),以完全接受Qt,但不会为代码增加额外的复杂性。

这可能吗?如果是这样,最简单的(从阅读代码的人的角度来看)最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

最好的方法是扩展QThread并将Xsleep方法公开为public:

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);}
};
顺便说一下。 Qt5将QThread :: Xsleep方法的可见性改为public。