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

打工人日报#20250921

打工人日报#20250921

知识点

在 MainWindow 类中启动和停止 MyTask 任务

MyTasksport.h

#ifndef MYTASKSPORT_H
#define MYTASKSPORT_H#include <QRunnable>
// 前向声明MainWindow类
class MainWindow;class MyTask : public QRunnable
{
public:MyTask(MainWindow* mainWindow);void run() override;void setStopFlag(bool shouldStop);private:MainWindow* m_mainWindow;bool m_shouldStop;
};#endif // MYTASKSPORT_H

MyTasksport.cpp

#include "MyTasksport.h"
#include "mainwindow.h"
#include <QDebug>
#include <QThread>MyTask::MyTask(MainWindow* mainWindow) : m_mainWindow(mainWindow), m_shouldStop(false)
{
}void MyTask::run()
{while (!m_shouldStop) {for (int i = 0; i < 10; ++i) {if (m_shouldStop) {break;}qDebug() << "Task is running: " << i;QThread::sleep(1);}}
}void MyTask::setStopFlag(bool shouldStop)
{m_shouldStop = shouldStop;
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QList>// 前向声明MyTask类
class MyTask;QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_Sports_clicked();private:Ui::MainWindow *ui;int Sportssta;QList<MyTask*> runningTasks;
};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "MyTasksport.h"
#include <QThreadPool>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow), Sportssta(0)
{ui->setupUi(this);connect(ui->SportsButton, &QPushButton::clicked, this, &MainWindow::on_Sports_clicked);
}MainWindow::~MainWindow()
{// 清理所有正在运行的任务foreach (MyTask* task, runningTasks) {task->setStopFlag(true);delete task;}delete ui;
}void MainWindow::on_Sports_clicked()
{if (Sportssta == 0){Sportssta = 1;MyTask* task = new MyTask(this);runningTasks.append(task);QThreadPool::globalInstance()->start(task);}else if (Sportssta == 1){Sportssta = 0;// 结束线程foreach (MyTask* task, runningTasks) {task->setStopFlag(true);}runningTasks.clear();}qDebug() << "Sportssta = " << Sportssta;
}

阅读

《小米创业思考》
第十二章 生态链模式
在这里插入图片描述

http://www.dtcms.com/a/393778.html

相关文章:

  • Coolmuster Android Assistant:Windows系统下的Android设备管理专家
  • Android 的多进程机制 (Android Multi-Process Model)
  • 2025研究生数学建模通用神经网络处理器下的核内调度问题草案
  • Spring Boot 4 新特性详解:5大核心更新助力企业级开发
  • 计算机网络经典问题透视:网络利用率和网络时延之间,究竟存在着怎样一种“爱恨交织”的关系?我们梦寐以求的100%网络利用率,在现实世界中真的能够实现吗
  • requests 和 lxml 库的xpath实现
  • 前端梳理体系从常问问题去完善-工程篇(webpack,vite)
  • Go语言在K8s中的核心优势
  • 旅游门票预订系统支持微信小程序+H5
  • Requests 网络请求:Python API 交互与数据获取
  • 基于Dify实现简历自动筛选过滤
  • PHP中常见数组操作函数
  • 避坑指南:鸿蒙(harmony next)APP获取公钥和证书指纹的方法
  • Java 大视界 -- Java 大数据在智能教育学习效果评估与教学质量改进中的深度应用(414)
  • 【场景题】如何解决大文件上传问题
  • 云原生复杂多变的环境中的安全防护方案
  • Python10-逻辑回归-决策树
  • 如何生成一个不会重复随机数?
  • 【精品资料鉴赏】155页WORD大型制造企业MES制造执行系统建设方案
  • 定时计划任务
  • 【脑电分析系列】第23篇:癫痫检测案例:从频谱特征到深度学习模型的CHB-MIT数据集实战
  • `CookieStore` API
  • 数据可视化的中间表方案
  • 编译运行duckdb rust插件模板extension-template-rs
  • 接口测试流程+jmeter并发+面试题(总结)
  • JMeter下载安装及入门教程
  • Oracle体系结构-Java Pool详解
  • ​​Service Worker 缓存 与 HTTP 缓存 是什么关系?
  • c++ 之三/五法则
  • 传输层协议 UDP