首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT 主线程等候子线程结束是界面不卡

2013-10-11 
QT 主线程等待子线程结束是界面不卡我现在主线程等待子线程结束才推出,如果阻塞等待肯定不行,请问有上面方

QT 主线程等待子线程结束是界面不卡
我现在主线程等待子线程结束才推出,如果阻塞等待肯定不行,请问有上面方法让界面不阻塞等待吗
[解决办法]
不清楚你的子线程的实现方法,目前的Qt有几种方法,最传统的是继承后,重写run,如果是一个持续工作,就在run里边使用while循环,用一个flag表示退出条件。然后在flag=deactive的时候break;同时设置flag=shutdown.然后你吧线程的finish信号绑定到主程序的slot上。。。

第二种是run里边建立event loop exec(); ....

技术文档中的例子是把工作类和线程分开,然后moveToThread把工作类移入子线程地址空间。这个最好用。所有这些情况下都不会阻塞主线程。你在主线程中如果有个循环非常堵,建议在循环内使用
QCoreApplication::voidprocessEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents )

热点排行