Umix
V2EX  ›  编程

MFC 或者 QT,单线程执行太久假死怎么办?

  •  
  •   Umix · May 22, 2017 · 4485 views
    This topic created in 3306 days ago, the information mentioned may be changed or developed.

    目前是 C++ & MFC。

    一个函数,执行时间半分钟到几分钟不等。执行的时候就会假死界面不能移动。 目前查到的 MFC 是界面线程和辅助线程分开。把这个函数放到辅助线程里。但是我不太会 C++和 MFC,MSDN 上的文档也看不明白怎么用😂。

    现在这个函数长成:

    void xxxdlg::func()
    {
      //对 xxxdlg 类里的非 static 属性进行了操作和赋值
     do something here;
    }
    

    有 v 友能帮忙写个大致的 Demo 样子吗? MFC 或者 QT 下的都可以。QT 没用过,不过如果比较简便的话我就转型 QT 了😂。谢谢!

    3 replies    2017-07-28 15:45:36 +08:00
    Leafove
        1
    Leafove  
       May 22, 2017
    前段时间用 QT 撸了一个比较文件夹区别的,刚好也遇到这个问题,希望能帮到你.
    第一次接触 QT 以前也少碰CPP,代码烂勿见怪.
    https://github.com/moonagic/QTMerger
    Umix
        2
    Umix  
    OP
       May 22, 2017
    @Leafove 看了一下,那 MFC 应该也是要新建一个 worker 类。考虑 qt 重写了😄 感谢
    beichao
        3
    beichao  
       Jul 28, 2017
    界面和耗时任务不能放到一个线程做,否则你的界面会被阻塞
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3167 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:04 · PVG 21:04 · LAX 06:04 · JFK 09:04
    ♥ Do have faith in what you're doing.