QT时间日期定时器类(6.QT延时操作)【QT基础入门 Demo篇】

 1、多线程延时

多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait()进行延时处理。

最简单的延时方法就是使用QThread类的sleep(n)、msleep(n)、usleep(n),这几个函数的不良后果就是,GUI会在延时的时间段内失去响应,界面卡死,所以,这三个函数一般用在非GUI线程中

QThread::msleep(50);//阻塞延时50ms

Sleep不会释放对象锁,其他线程无法访问对象,因此会阻塞线程;而Wait会释放对象锁,使得其他线程能够访问该对象。

2、自定义延时函数:

使用QEventLoop

void Widget::Sleep(int msec)
{
    QTime dieTime = QTime::currentTime().addMSecs(msec);
    while( QTime::currentTime() < dieTime )
        QCoreApplication::processEvents(QEventLoop::All

你可能感兴趣的:(QT基础入门,qt,开发语言)