zoukankan      html  css  js  c++  java
  • Qt 如何处理密集型耗时的事情

    频繁主动调用QCoreApplication::processEvents()

    https://blog.csdn.net/lixiangmaty/article/details/79452553
    https://www.cnblogs.com/findumars/p/5607683.html

    UI线程中耗时函数,可能会导致界面假死。

    QCoreApplication::processEvents()。该函数的作用是让程序处理那些还没有处理的事件,然后再把使用权返回给调用者

    QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);//它可以忽略用户的输入(鼠标和键盘事件)。

    控制光标显示
    QApplication::setOverrideCursor(Qt::WaitCursor);
    QApplication::restoreOverrideCursor();

    调用 Void QApplication::processEvents() 或 void QApplication::processEvents ( int maxtime ) 来强迫事件循环进行,但是这种做法是有潜在风险的。

    按照QCoreApplication:processEvents()可能会引起递归,导致栈溢出崩溃的说法,当主线程在某个槽函数里正在执行processEvents时,

    刚好有一个能响应此槽函数的信号发送过(肯定是其他线程发的信号), 这时就可能会发生可怕的递归, 导致栈溢出崩溃。

    原因是processEvents在处理自己槽函数的事件时,又会调用到processEvents,进入到无尽的递归中。

  • 相关阅读:
    mysql 性能监控
    拼接字符
    mysql 存储 2
    mysql 存储过程
    flock
    readfile() file_get_content f
    url_encode和base64
    jsdetox反混淆js内容,解密前端加密参数
    前端加密之使用firefox来解密
    v to ray做渗透测试
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/11820049.html
Copyright © 2011-2022 走看看