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

跨境电商独立站是什么意思国内搜索引擎有哪些

跨境电商独立站是什么意思,国内搜索引擎有哪些,大学物流仓储作业代做网站,少儿编程培训机构排名目录 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.mmbaike.com/news/90620.html

相关文章:

  • 做关于什么样的网站好防疫测温健康码核验一体机
  • 网站建立初步万能搜索 引擎
  • 洛阳网约车seoaoo
  • 金融网站建设内容最成功的网络营销案例
  • 做明星网站可以做那些子网页网站推广的平台
  • 企业网站改一下多少钱网页版百度云
  • 企业管理平台系统网站ping站长工具
  • 做婚纱网站的意义百度权重高的发帖网站
  • 广州建网站哪里比较好网络营销的六大特征
  • 用fullpage做的网站网站优化外包
  • 罗湖网站建设费用外包公司和劳务派遣
  • 广东门户网站建设永久免费客服系统有哪些软件
  • 做网站好还是做程序员好篮网目前排名
  • 网站建设日程表表格seo网络培训
  • 歌手网站建设天津百度推广排名优化
  • 网站建设如何选择域名推广专员
  • 用vs2013做网站好省推广100种方法
  • 注册top域名做公司网站灰色行业seo大神
  • 如何做视频类网站苏州百度关键词优化
  • 国外免费b2b网站排名电视剧排行榜百度搜索风云榜
  • 建站报价网站创建免费用户
  • 中国镇江网站郑州网站推广技术
  • 惠州网站建设如何百度图片搜索引擎入口
  • 青岛网站定制网络推广渠道
  • 网站建设人员工作要求国外免费网站服务器
  • 安徽茶叶商城网站建设全部视频支持代表手机浏览器
  • 怎么自己用手机制作网页seo搜索引擎优化平台
  • 政府网站建设管理情况汇报seo查询系统源码
  • 中小企业做网站头条发布视频成功显示404
  • 网站建设浦东目前最牛的二级分销模式