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

2017-05-22 17:35:18 +08:00
 Umix

目前是 C++ & MFC。

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

现在这个函数长成:

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

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

3779 次点击
所在节点    编程
3 条回复
Leafove
2017-05-22 18:08:17 +08:00
前段时间用 QT 撸了一个比较文件夹区别的,刚好也遇到这个问题,希望能帮到你.
第一次接触 QT 以前也少碰CPP,代码烂勿见怪.
https://github.com/moonagic/QTMerger
Umix
2017-05-22 19:09:26 +08:00
@Leafove 看了一下,那 MFC 应该也是要新建一个 worker 类。考虑 qt 重写了😄 感谢
beichao
2017-07-28 15:45:36 +08:00
界面和耗时任务不能放到一个线程做,否则你的界面会被阻塞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX