当前位置: 首页 > news >正文

网站正能量免费推广软件晚上百度快照搜索

网站正能量免费推广软件晚上,百度快照搜索,web开发就是做网站吗,seo网站运营目录 QT提供延时 1.自定义延时 2.使用QElapsedTimer 3.使用事件循环 4.跨平台延时 QT提供延时 这里提供四种方法: 1、多线程程序使用QThread::sleep()或者QThread::msleep()或QThread::usleep()或QThread::wait()进行延时处理。 Sleep不会释放对象锁&#x…

目录

QT提供延时

1.自定义延时

2.使用QElapsedTimer

3.使用事件循环

4.跨平台延时


QT提供延时

这里提供四种方法:

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

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

1.自定义延时

使用QEventLoop

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

传入参数msec,使程序延时msec毫秒。这种方法不会阻塞当前线程,尤其适合Qt的单线程带UI程序,或者UI线程,因为线程阻塞时,

很明显的现象就是UI卡死。当然,你也可以更改addMSecs为addSecs使程序延时msec秒。

如果去掉QCoreApplication::processEvents(QEventLoop::AllEvents, 100); 可以延时,但也会阻塞线程

QCoreApplication::processEvents(QEventLoop::AllEvents, 100);

使程序在while等待期间,去处理一下本线程的事件循环,处理事件循环最多100ms必须返回本语句,如果提前处理完毕,则立即返回这条语句

2.使用QElapsedTimer

使程序延时10S(10000MS),但是这种方法也会阻塞线程

//#include <QElapsedTimer>
QElapsedTimer t;
t.start();
while(t.elapsed()<10000);

3.使用事件循环

这种方法不会阻塞线程

void Delay_MSec(unsigned int msec)
{QEventLoop loop;//定义一个新的事件循环QTimer::singleShot(msec, &loop, SLOT(quit()));//创建单次定时器,槽函数为事件循环的退出函数loop.exec();//事件循环开始执行,程序会卡在这里,直到定时时间到,本循环被退出
}

4.跨平台延时源码

QTest中的Sleep(可以看到window中调到是Sleep,其他是nanosleep)

void QTest::qSleep(int ms)
{QTEST_ASSERT(ms > 0);#ifdef Q_OS_WINSleep(uint(ms));
#elsestruct timespec ts = { ms / 1000, (ms % 1000) * 1000 * 1000 };nanosleep(&ts, NULL);
#endif
}


QThread中Sleep

/*  /internalhelper function to do thread sleeps, since usleep()/nanosleep()aren't reliable enough (in terms of behavior and availability)
*/
static void thread_sleep(struct timespec *ti)
{pthread_mutex_t mtx;pthread_cond_t cnd;pthread_mutex_init(&mtx, 0);pthread_cond_init(&cnd, 0);pthread_mutex_lock(&mtx);(void) pthread_cond_timedwait(&cnd, &mtx, ti);pthread_mutex_unlock(&mtx);pthread_cond_destroy(&cnd);pthread_mutex_destroy(&mtx);
}
void QThread::sleep(unsigned long secs)
{struct timeval tv;gettimeofday(&tv, 0);struct timespec ti;ti.tv_sec = tv.tv_sec + secs;ti.tv_nsec = (tv.tv_usec * 1000);thread_sleep(&ti);
}

http://www.hotlads.com/news/4963.html

相关文章:

  • 如何做好网站内更新网站排名查询工具
  • 网站注册表单怎么做站长之家域名查询官网
  • 南山企业网站建设今日足球赛事推荐
  • 网站制作策划建设大纲搜索引擎优化方法与技巧
  • 有哪些做简历的网站旅游产品推广有哪些渠道
  • 胶州专业网站建设公司湖南关键词网络科技有限公司
  • 帝国cms收费吗windows优化
  • 做淘宝有哪些推广网站企业seo网站推广
  • 网站建设 目标网络seo推广培训
  • 网站开发 保密期限中国十大搜索引擎网站
  • 萝岗电子商务网站建设北京seo案例
  • 凡科平台登录平台沈阳seo优化排名公司
  • 做网站需要会什么九个关键词感悟中国理念
  • 找做金融的网站有哪些方面seo搜索引擎排名优化
  • 网站设计批发宁波seo优化公司排名
  • 莆田做网站抖音代运营大概多少钱一个月
  • 好看的做地图分析图的网站吸引人气的营销方案
  • 武汉建网站公司怎么样百度站长工具查询
  • 直播网站app开发长沙seo计费管理
  • 网站的建设与推广中国网络营销公司
  • 建网站需要那些工具互联网营销师证书怎么考多少钱
  • 厦门掘金网站建设关键词排名查询工具有什么作用?
  • 做网站学什么什么专业seo最好的工具
  • 网站建设应走什么会计科目网站免费进入窗口软件有哪些
  • 中信建设有限责任公司企查查河南靠谱seo电话
  • 虚拟主机怎么设计网站吗各网站收录
  • 青岛做网站找哪家好广告联盟平台
  • 您的网站空间已过期西安网络推广seo0515
  • 毕业设计博客网站开发优化器
  • 李佳琦的网络营销方式seo黑帽有哪些技术