耗时导致ui阻塞了,解决办法就是开线程。 OnClick就开工作线程,修改工作状态为进行中。(比如设置在lable上显示) 工作线程完成了就SendMessage 给窗口 定义个WM_USER+ xxx 为导出完成消息。 窗口消息里把这个消息处理下,弹出窗口提示,什么的,你自己看着办
可以考虑线程池
[quote=引用 5 楼 zhangli00 的回复:] 别总想着拷贝,直接传数据地址就行了,开线程处理是最好的,c++11的新特性里面,开线程非常简单了,而且可以操作类成员变量,存储和读取都非常方便,在同一个类里面的话,传都不用传,直接调用
线程中可以给UI投递消息
别总想着拷贝,直接传数据地址就行了,开线程处理是最好的,c++11的新特性里面,开线程非常简单了,而且可以操作类成员变量,存储和读取都非常方便,在同一个类里面的话,传都不用传,直接调用
[quote=引用 2 楼 u012072837 的回复:] [quote=引用 1 楼 zgl7903 的回复:] onBnclick 中启动后台线程, 再启动一个定时器监视后台线程运行情况
[quote=引用 1 楼 zgl7903 的回复:] onBnclick 中启动后台线程, 再启动一个定时器监视后台线程运行情况
onBnclick 中启动后台线程, 再启动一个定时器监视后台线程运行情况
C++11开线程很简单的 std::thread tt(&ClassName::FunName, this); tt.detach(); 上面就是基本结构,如果你的FunName方法带有参数,就在this后面加参数就行了,如: void FunName(int i,int j); std::thread tt(&ClassName::FunName, this,1,2); 至于detach和join,自己可以百度看看区别,根据需求选择
[quote=引用 7 楼 u012072837 的回复:] [quote=引用 5 楼 zhangli00 的回复:] 别总想着拷贝,直接传数据地址就行了,开线程处理是最好的,c++11的新特性里面,开线程非常简单了,而且可以操作类成员变量,存储和读取都非常方便,在同一个类里面的话,传都不用传,直接调用
15,979
社区成员
115,896
社区内容
加载中
试试用AI创作助手写篇文章吧