惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Jina AI
Jina AI
小众软件
小众软件
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
D
DataBreaches.Net
腾讯CDC
V
Visual Studio Blog
博客园 - 叶小钗
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
U
Unit 42
博客园 - 司徒正美
博客园 - 聂微东

博客园 - 风来风往风伤(TiAmo)

CPU监控工具 桌面日历软件 no matching host key type found. Their offer: ssh-rsa报错信息具体方法 Spring_AOP 原理 增强类型 js漂浮代码 ThoughtWorks(中国)程序员读书雷达 Java实现文件的RSA和DES加密算法 二维码 编码原理简介 Maven+eclipse+svn项目构建 QtCreator中使用CMake+Ninja加速编译 error C1088: 无法刷新编译器中间文件 error C1041: 无法打开程序数据库“xxx\vc140.pdb”;如果要将多个 CL.EXE 写入同一个 .PDB 文件 - 风来风往风伤(TiAmo) Navicat key MICROSOFT SQL SERVER 2012 序列号 IT外包概要 RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set. 判断django中的orm为空 sql调优的总结 2019Python学习路线图
QEventLoop配合QTimer实现阻塞任务超时处理
风来风往风伤(TiAmo) · 2019-05-31 · via 博客园 - 风来风往风伤(TiAmo)

A阻塞主线程正常运行,需要做特殊处理。

以下代码可实现,A阻塞或者正常处理时,均不阻塞主线程正常处理。

        QEventLoop eventloop;
        // use point to manage eventloop
        QPointer<QEventLoop> blocker(&eventloop);
        bool runOk = false;
        // timeout 5000ms,exit
        QTimer::singleShot(5000, &eventloop, &QEventLoop::quit);

        std::async([blocker, &runOk]() {
            //
            // async mehthon run your logic 
            // do something

            // exit 
            if (blocker) {
                blocker->quit();
                runOk = true;
            }
        });

        // running 
        eventloop.exec();

        // normal exit do something
        if (runOk) 
     {
       // do something
     }
        else
        {
           // timeout do something
        }