<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Qt異步:QFuture

       

      有時候一個功能特別耗時,容易卡主進程,這個時候就需要上異步操作了。

       

      # Pro
      
      QT += concurrent
      # .h
      
      #ifndef WIDGET_H
      #define WIDGET_H
      
      #include <QWidget>
      #include <QDebug>
      
      // 異步,qmake: QT += concurrent
      #include <QFutureWatcher>
      #include <QFuture>
      #include <QtConcurrent>
      
      
      QT_BEGIN_NAMESPACE
      namespace Ui { class Widget; }
      QT_END_NAMESPACE
      
      class Widget : public QWidget
      {
          Q_OBJECT
      
      public:
          Widget(QWidget *parent = nullptr);
          ~Widget();
      
      public slots:
          void fn_pushButton_click();
          void fn_future_return(const QString& text);
      
      private:
          Ui::Widget *ui;
          QFutureWatcher<void> m_futureWatcher;
      };
      #endif // WIDGET_H

       

      #include "widget.h"
      #include "ui_widget.h"
      
      Widget::Widget(QWidget *parent)
          : QWidget(parent)
          , ui(new Ui::Widget)
      {
          ui->setupUi(this);
      
          connect(ui->pushButton, &QPushButton::clicked, this, &Widget::fn_pushButton_click);
      
          // 鏈接 future 完成信號
          connect(&m_futureWatcher, &QFutureWatcher<void>::finished, this, [this](){
              if(m_futureWatcher.future().isCanceled())
              {
                  qDebug() << "clicked canceled";
              }
              else
              {
                  qDebug() << "future finish:";
              }
          });
      
      }
      
      Widget::~Widget()
      {
          delete ui;
      
          // 確保后臺任務完成
          m_futureWatcher.cancel();
          m_futureWatcher.waitForFinished();
      }
      
      void Widget::fn_pushButton_click()
      {
          QFuture<void> future = QtConcurrent::run([this](){
              QString text = "123";
              QThread::sleep(3);
              QMetaObject::invokeMethod(this, "fn_future_return", Qt::QueuedConnection, Q_ARG(QString, text));
          });
          m_futureWatcher.setFuture(future);
      }
      
      void Widget::fn_future_return(const QString &text)
      {
          qDebug() << "fn:" << text;
      }

       

      posted @ 2025-06-03 16:33  十一的雜文錄  閱讀(44)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无遮无挡爽爽免费视频| 奉新县| 女人与牲口性恔配视频免费 | 中国性欧美videofree精品| 国产精品点击进入在线影院高清| 日韩人妻无码精品久久 | 欧洲国产成人久久精品综合| 国产成人无码AV片在线观看不卡| 起碰免费公开97在线视频| 国产精品亚洲二区在线看| 国产精品ⅴ无码大片在线看| 97在线精品视频免费| 台南县| 人妻va精品va欧美va| 日韩精品永久免费播放平台 | 日区中文字幕一区二区| 久久久亚洲欧洲日产国码农村| 亚洲中文字幕无码中字| 久久精品色妇熟妇丰满人| 国产午夜在线观看视频播放| a4yy私人毛片| 女人与牲口性恔配视频免费| 国产精品一码二码三码| 无码国产精品一区二区免费虚拟vr | 国产精品日韩中文字幕熟女| gogogo高清在线播放免费| 亚洲暴爽av天天爽日日碰| 男女爽爽无遮挡午夜视频| www夜插内射视频网站| 麻豆精品一区二区视频在线 | 成年女人永久免费观看视频| 久久亚洲国产五月综合网| 天天澡日日澡狠狠欧美老妇| 国产成人亚洲欧美二区综合| 综合区一区二区三区狠狠| japanese丰满奶水| 99热精品毛片全部国产无缓冲| 国产极品粉嫩尤物一区二区| 国产午夜三级一区二区三| 亚洲午夜av一区二区| 亚洲高清 一区二区三区|