我从以下链接了解到,对 QThread 进行子类化并不是正确的使用方法...正确的方法是对 QObject 进行子类化,然后使用 moveToThread() 函数将 QObject 类的对象移动到相应的线程...我点击了以下链接.. link 1和 link 2 ...但我的问题是我将如何使用 msleep() 和 usleep() protected 静态函数?或者我会使用 QTimer 让线程等待一段时间吗?
最佳答案
不需要计时器。对于等待,Qt 提供了 QWaitCondition。你可以实现这样的东西:
#include <QWaitCondition>
#include <QMutex>
void threadSleep(unsigned long ms)
{
QMutex mutex;
mutex.lock();
QWaitCondition waitCond;
waitCond.wait(&mutex, ms);
mutex.unlock();
}
这是一个正常的功能。如果需要,您当然也可以将它实现为成员函数(在这种情况下它可以是 static
成员。)
关于c++ - QThread:如何使用 protected 静态函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422162/