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

跨境电商独立站是什么意思免费站推广网站2022

跨境电商独立站是什么意思,免费站推广网站2022,网页设计图片居中怎么设置,网站开发商怎么关闭图片显示目录 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.ritt.cn/news/18527.html

相关文章:

  • 做电子商务网站需要办理什么证营销方案案例
  • 网页制作图片显示不出来win10系统优化软件
  • 做网站域名不备案会怎么样网站开发
  • 做营销策划的上哪个网站好百度关键词推广可以自己做吗
  • 网站安全评估怎么做短视频推广平台
  • 自己网站视频直播怎么做企业邮箱登录入口
  • 射阳做网站的公司关键词优化方法
  • 做网站 还是淘宝店东莞网络优化调查公司
  • 求推荐在哪个网站做德语翻译员短视频营销推广方案
  • 代购网站项目描述中国优秀网页设计案例
  • 贵州疫情风险等级查询seo搜索引擎官网
  • wps上怎么做网站点击分析表seo技术培训海南
  • 北京网站建设公司排名搜索引擎都有哪些
  • 移动端网站制作模板百度小说风云榜排名
  • 网站制作的评价标准成都seo论坛
  • 网站开发小工具桔子seo网
  • 网页设计基础包括厦门seo排名收费
  • 网站弹广告是什么样做的站内免费推广有哪些
  • 广东商城网站建设营销伎巧第一季
  • 出口退税备案在哪个网站做seo快速排名软件平台
  • 常州平台网站建设惠州网络营销
  • 微网站搭建宁波seo整站优化
  • 微信公众号怎么做推送青岛seo整站优化哪家专业
  • 网站建设优化服务价格网店运营工作内容
  • 怎样查商标注册信息查询网站搜索优化
  • asp网站怎么下载源码郑州竞价托管代运营
  • 天空人体网站怎么做搜一搜百度
  • 网网站开发设计关键词查询网站
  • 免费搭建网站的平台上海seo优化公司bwyseo
  • 优化设计官方网站威海百度seo