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

百度云自助建站河南网站推广优化排名

百度云自助建站,河南网站推广优化排名,怎样在线做网站404,郑州优之客网站建设使用Qt中自带的线程类QThread时 1、需要定义一个子类继承自QThread 2、重写run()方法,在run方法中编写业务逻辑 3、子类支持信号槽 4、子类的构造函数的执行是在主线程进行的,而run方法的执行是在子线程中进行的 常用方法 静态方法 获取线程id 可…

使用Qt中自带的线程类QThread时

1、需要定义一个子类继承自QThread

2、重写run()方法,在run方法中编写业务逻辑

3、子类支持信号槽

4、子类的构造函数的执行是在主线程进行的,而run方法的执行是在子线程中进行的

常用方法

静态方法

获取线程id

可以得到当前线程的id

[static noexcept] Qt::HANDLE QThread::currentThreadId()

线程睡眠

 void msleep(unsigned long msecs)//单位毫秒void sleep(unsigned long secs)//单位秒(since 6.6) void sleep(std::chrono::nanoseconds nsecs)//单位纳秒void usleep(unsigned long usecs)//单位微秒

公共方法

判断线程是否执行完毕

bool QThread::isFinished() const

判断线程是否正在运行

bool QThread::isRunning() const

判断线程是否被请求中断了

bool QThread::isInterruptionRequested() const

可以在子线程中的run函数中通过这个函数获知是否需要中断退出了

发出中断请求

调用这个方法可以向线程发起中断请求,调用后:isInterruptionRequested()会返回true

void QThread::requestInterruption()

等待线程

是一个阻塞函数,调用他来确保线程已经执行完毕

bool QThread::wait(QDeadlineTimer deadline = QDeadlineTimer(QDeadlineTimer::Forever))

通常使用其默认参数,如果线程一直不执行完毕,那么该函数的调用者将会一直被阻塞,直到线程执行完毕

公有槽函数

启动线程

通常我们调用该函数来启动线程

[slot] void QThread::start(QThread::Priority priority = InheritPriority)

终止线程

通常我们调用该方法强制终止一个线程,但不建议

[slot] void QThread::terminate()

举例:

点击开启按钮,会开启一个线程

点击关闭按钮,会发出中断请求,使得线程退出

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QThread>
#include<QPushButton>class Thread01:public QThread
{Q_OBJECT
public:Thread01(int num):m_num(num){//构造函数的调用是在主线程//可以打印线程id,查看区别qDebug()<<"线程id:"<<QThread::currentThreadId();}~Thread01()=default;protected://重写run方法void run() override{//run函数在子线程中运行qDebug()<<"线程id:"<<QThread::currentThreadId();while(1){//如果请求中断的话就退出if(isInterruptionRequested()){return;}//循环自增,然后打印qDebug()<<m_num++;}}
private:int m_num=0;};class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr) : QWidget(parent){resize(300,300);QPushButton* btn=new QPushButton("开启线程",this);btn->setGeometry(10,10,100,100);QPushButton* btn2=new QPushButton("退出线程",this);btn2->setGeometry(10,btn->geometry().bottom()+10,100,100);//创建线程Thread01* th=new Thread01(100);//从100开始自增connect(btn,&QPushButton::clicked,this,[=](){//开启线程if(!th->isRunning()){th->start();}});connect(btn2,&QPushButton::clicked,this,[=](){//线程正在执行的话if(th->isRunning()){//中断线程th->requestInterruption();}//使用wait方法确保线程退出了if(th->wait()){qDebug()<<"线程退出了";}});}~Widget()=default;
private:};
#endif // WIDGET_H

学习链接:https://github.com/0voice

http://www.yidumall.com/news/66961.html

相关文章:

  • 各大招聘网站收费标准自媒体是什么
  • 给人做阉割手术的网站搜狗站长工具
  • 个人免费网站建设使用 ahrefs 进行 seo 分析
  • 网站的视频怎么下载广告联盟哪个比较好
  • 磁力搜索器搜索引擎优化包括哪些方面
  • 网站做跳转微信打开竞价代运营外包公司
  • 网站做qq发送链接seo入门书籍推荐
  • 兰州互联网公司的排名抖音seo是什么
  • 网站建设新闻网站百度搜索排名怎么做
  • 个人怎么做贷款网站青青河边草直播免费观看
  • 网站构建的基本流程网络营销工程师是做什么的
  • 安卓市场下载安装seo排名优化是什么意思
  • 华春建设工程项目管理有限公司网站谷歌广告
  • 外贸网站建设加推广百度 指数
  • 做网站的步骤的文本百度直播间
  • 怎么提高自己网站的流量查看浏览过的历史记录百度
  • 普陀学校网站建设100个电商平台
  • 网络营销网站建设论文seo网站诊断价格
  • 有了代刷网的源码怎么做网站怎么注册个人网站
  • 做时间轴的在线网站网站一级域名和二级域名
  • 做dj网站需要seo综合查询平台官网
  • 文山知名网站建设公司seo和sem是什么
  • 网站开发华企云商小程序开发系统
  • 肇庆seo外包服务优化关键词有哪些方法
  • wordpress 邮箱配置seo线下培训班
  • 厦门市建设局网站文件主流搜索引擎有哪些
  • 上海做网站的公司多少钱seo如何快速出排名
  • asp.net做的小网站手机网站关键词快速排名
  • 怎么用axure做网站导航栏免费网络营销方式
  • 外贸建站哪好怎么让网站排名上去