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

网站建设推广专员岗位职责建网站要去备案

网站建设推广专员岗位职责,建网站要去备案,百度网站下拉怎么做的,全球包装设计网QThread QThread类枚举类型成员函数可重写函数公共槽信号静态成员函数保护函数静态保护函数QThread简单案例1QThread简单案例2 QThread类 标准头文件#xff1a;#include QThread qmake: QT core 继承(父): QObject枚举类型 线程的优先级 enum Priority { IdlePri… QThread QThread类枚举类型成员函数可重写函数公共槽信号静态成员函数保护函数静态保护函数QThread简单案例1QThread简单案例2 QThread类 标准头文件#include QThread qmake: QT core 继承(父): QObject枚举类型 线程的优先级 enum Priority { IdlePriority, LowestPriority, LowPriority, NormalPriority, HighPriority, …, InheritPriority }{ 空闲优先级最低优先级低优先级正常优先级高优先级…继承优先级 } 此枚举类型指示操作系统应该如何调度新创建的线程。 常数价值描述QThread::IdlePriority0仅在没有其他线程运行时调度。QThread::LowestPriority1调度频率低于低优先级。QThread::LowPriority2计划频率低于正常优先级。QThread::NormalPriority3操作系统的默认优先级。QThread::HighPriority4比正常优先级计划得更频繁。QThread::HighestPriority5比高优先级计划得更频繁。QThread::TimeCriticalPriority6尽可能经常安排。QThread::InheritPriority7使用与创建线程相同的优先级。这是默认值。 成员函数 类型方法说明构造函数QThread(QObject *parent nullptr)参数父类QObject指针virtual~QThread()虚析构函数当基类指针指向子类时使用delete时会先调用子类析构函数在调用父类构造函数释放资源。QAbstractEventDispatcher *eventDispatcher() constvoidexit(int returnCode 0)boolisFinished() constboolisInterruptionRequested() constboolisRunning() constintloopLevel() constQThread::Prioritypriority() constvoidrequestInterruption()voidsetEventDispatcher(QAbstractEventDispatcher *eventDispatcher)voidsetPriority(QThread::Priority priority)voidsetStackSize(uint stackSize)uintstackSize() constboolwait(QDeadlineTimer deadline QDeadlineTimer(QDeadlineTimer::Forever))阻塞线程直到满足以下任一条件这提供了与POSIX pthread_join()函数相似的功能。boolwait(unsigned long time) 可重写函数 virtual bool event(QEvent *event) override公共槽 何为公共槽函数就是可以被子类直接调用 void quit() void start(QThread::Priority priority InheritPriority) void terminate()信号 void finished() void started()静态成员函数 QThread * create(Function f, Args ... args) QThread * create(Function f) QThread * currentThread() Qt::HANDLE currentThreadId() int idealThreadCount() void msleep(unsigned long msecs) void sleep(unsigned long secs) void usleep(unsigned long usecs) //强制当前线程休眠微秒。 //[将当前线程的执行让给另一个可运行线程(如果有)。请注意操作系统决定切换到哪个线程。] void yieldCurrentThread()保护函数 int exec() virtual void run()静态保护函数 基于enabled参数启用或禁用当前线程的终止。线程必须是由QThread启动的。 void setTerminationEnabled(bool enabled true)QThread简单案例1 官方的例子值得信赖 例如:Worker 是我们创建的一个子线程。 继承QObject的优点内存回收安全支持信号与槽。 例如Controller 是主线程。 共同点他们都继承自QObject 代码里面的connect的这种写法我比较推荐参数怎么变都不影响减少修改次数 这种线程的特点任务线程里面的每个槽函数都是一个事件循环即你可以处理耗时操作读写文件数据计算大量循环等等目前我我是使用这种方法还不错。 class Worker : public QObject {Q_OBJECTpublic slots:void doWork(const QString parameter) {QString result;/* ... 处理大数据 ... */emit resultReady(result); //处理完数据发到主线程显示}signals:void resultReady(const QString result); };class Controller : public QObject {Q_OBJECTQThread workerThread;//线程栈 自动销毁推荐使用 public:Controller() {Worker *worker new Worker; //创建任务子线程worker-moveToThread(workerThread); //添加到线程实际应该可以添加多个任务子线程。connect(workerThread, QThread::finished, worker, QObject::deleteLater);//线程完成这个任务就将这个任务线程对象删除connect(this, Controller::operate, worker, Worker::doWork);//发射信号通知任务线程做事。connect(worker, Worker::resultReady, this, Controller::handleResults);//接收任务子线程处理好的数据workerThread.start(); //正式开启线程}~Controller() {workerThread.quit(); //先退出没处理的任务workerThread.wait(); //已经在处理的任务等待处理完在退出} public slots:void handleResults(const QString ); signals:void operate(const QString ); };任务插槽中的代码将在一个单独的线程中执行。但是您可以自由地将任务线程的插槽连接到来自任何对象、任何线程的任何信号。由于一种称为排队连接的机制跨不同线程连接信号和插槽是安全的。 QThread简单案例2 让代码在单独的线程中运行的另一种方法是子类化QThread并重新实现run()。这种使用的场景一般是不需要和主线程交互比如只完成文件写操作等等。 例如: //任务线程 class WorkerThread : public QThread {Q_OBJECTvoid run() override {QString result;/* ... here is the expensive or blocking operation ... */emit resultReady(result);} signals:void resultReady(const QString s); }; //主线程 分配任务 void MyObject::startWorkInAThread() {WorkerThread *workerThread new WorkerThread(this);//传入this,就是QObject的指针资源的释放即是线程的构造函数传参。connect(workerThread, WorkerThread::resultReady, this, MyObject::handleResults);connect(workerThread, WorkerThread::finished, workerThread, QObject::deleteLater);workerThread-start();//开启run()方法 }在该示例中线程将在run函数返回后退出。除非调用exec()否则线程中不会运行任何事件循环(即做完这件事就不再执行事件循环了)。 重要的是要记住QThread实例存在于实例化它的旧线程中而不是存在于调用run()的新线程中。这意味着所有QThread的队列槽和调用的方法都将在旧线程中执行。因此希望在新线程中调用槽的开发人员必须使用工作对象方法新插槽不应该直接在子类化的QThread中实现。 与排队槽或调用的方法不同直接在QThread对象上调用的方法将在调用该方法的线程中执行。当子类化QThread时请记住构造函数在旧线程中执行主线程id一致而run()在新线程中执行(线程id新的)。如果一个成员变量是从两个函数中访问的那么这个变量是从两个不同的线程中访问的。检查这样做是否安全。 注意:在跨不同线程与对象交互时必须小心。一般来说函数只能从创建QThread对象本身的线程中调用(例如setPriority())除非文档中另有说明。
http://www.dnsts.com.cn/news/40522.html

相关文章:

  • 凯里公司网站建设小程序源码网免费下载
  • 苏州做企业网站的公司用户界面设计的重要性
  • 网站建设公司市场网站建设三亚
  • 手机网站 布局积极推进网站建设
  • 太原网站制作公司飞向未来网站做微信小程序号码
  • 临沂做商城网站设计市场营销策略
  • asp.net网站开发使用到的技术自己怎么制作网页
  • 济南建设银行网站国内新闻最新消息10条简短2022
  • 做网站上海的备案地址公司微信网站建设方案模板下载
  • 秦皇岛黄金海岸游玩攻略seo推广编辑招聘
  • 怎样建立自己的个人网站深圳平台网站建设外包
  • 铁路建设监理协会官方网站仿站建设
  • 网页建站建设教程织梦小说网站
  • 帮别人做网站维护违法网站开发所遵循
  • 符合seo的网站企业策划书格式
  • 山东胜越石化工程建设有限公司网站wordpress phpwind
  • 如何在网站页面做标注seo管理员
  • 建设集团网站方案android 开发语言
  • 高端网站制作模板怎样解析网站域名
  • 温州市建设厅网站首页广元市网站建设
  • 免费男人做那个的视频网站网站换域名有没有影响
  • 整站优化网站报价建设单位到江川区住房和城乡建设局网站
  • 磁力兔子首页排名seo
  • 公司 网站 模板wordpress最新主题下载
  • 网站专题制作流程seo推广原理
  • 建设银行的网站外贸网站建设公司平台
  • 网站卡的原因网络艺术设计是什么
  • 江苏省建设档案网站做seo要投入什么
  • 网站开发可选择方案有哪些制作网线的步骤
  • 企业做电商网站网站开发必学的技巧有哪些