c++ - QThread:如何使用 protected 静态函数

标签 c++ multithreading qt qthread

我从以下链接了解到,对 QThread 进行子类化并不是正确的使用方法...正确的方法是对 QObject 进行子类化,然后使用 moveToThread() 函数将 QObject 类的对象移动到相应的线程...我点击了以下链接.. link 1link 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/

相关文章:

c++ - 在 Mac 上使用 Qt 和介子时出现问题

c++ - Qt 向 QMainWindow 添加非菜单栏键盘快捷方式

c++ - 在沙盒环境中运行程序时如何禁止系统调用?

c++ - 获取最近的路径图

c++ - 对同一数据有 8 位和 16 位 View ?

c++ - 将自由函数绑定(bind)为类成员函数

java - 即使两个线程不同时读写,我是否也需要同步?

c# - ConcurrentDictionary线程安全替代方案中的AddOrUpdate方法

java - 基于数据库更新和时间间隔触发 Java 程序

c++ - 拔下 USB 串行电缆时发送信号