QThread把sleep做成protected的原因?有什么方法能让函数等待一小段时间?

时间:2022-04-13 15:49:49
如题~想让函数等待指定的时间以后再执行后面的语句,又不想用QThread实例化对象,更不想用个类去继承QThread然后把sleep等函数重载成public的,还有没有什么好的想法?

3 个解决方案

#1


http://hi.baidu.com/cyclone/blog/item/9c7f8701ef7326c3267fb515.html

题外:在Qt仓库中,QThread中这几个函数目前已经改为public

#2


引用 1 楼 dbzhang800 的回复:
http://hi.baidu.com/cyclone/blog/item/9c7f8701ef7326c3267fb515.html

题外:在Qt仓库中,QThread中这几个函数目前已经改为public

有效率,谢啦,结题最快的一次了~哈哈

#3


引用楼主 slotlovesignal 的回复:
如题~想让函数等待指定的时间以后再执行后面的语句,又不想用QThread实例化对象,更不想用个类去继承QThread然后把sleep等函数重载成public的,还有没有什么好的想法?

顺便评价下这两种?

1.

QMutex m;
QMutexLocker __locker__(&m);
QWaitCondition().wait(&m, WAIT_TIME);



2.

#include <qthread.h>

class I : public QThread
{
public:
 static void sleep(unsigned long secs) {
  QThread::sleep(secs);
 }
 static void msleep(unsigned long msecs) {
  QThread::msleep(msecs);
 }
 static void usleep(unsigned long usecs) {
  QThread::usleep(usecs);
 }
};

#1


http://hi.baidu.com/cyclone/blog/item/9c7f8701ef7326c3267fb515.html

题外:在Qt仓库中,QThread中这几个函数目前已经改为public

#2


引用 1 楼 dbzhang800 的回复:
http://hi.baidu.com/cyclone/blog/item/9c7f8701ef7326c3267fb515.html

题外:在Qt仓库中,QThread中这几个函数目前已经改为public

有效率,谢啦,结题最快的一次了~哈哈

#3


引用楼主 slotlovesignal 的回复:
如题~想让函数等待指定的时间以后再执行后面的语句,又不想用QThread实例化对象,更不想用个类去继承QThread然后把sleep等函数重载成public的,还有没有什么好的想法?

顺便评价下这两种?

1.

QMutex m;
QMutexLocker __locker__(&m);
QWaitCondition().wait(&m, WAIT_TIME);



2.

#include <qthread.h>

class I : public QThread
{
public:
 static void sleep(unsigned long secs) {
  QThread::sleep(secs);
 }
 static void msleep(unsigned long msecs) {
  QThread::msleep(msecs);
 }
 static void usleep(unsigned long usecs) {
  QThread::usleep(usecs);
 }
};