Qt中对于一些比较耗时的工作,如下载数据的同步操作,可能会使主线程处于等待状态,导致界面假死,针对此种情况,我们可以使用一个定时器和人工进行事件循环代码如下:
m_nTimerID = startTimer(500);
while (!m_bFileDownloaded)
{
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}
使用Timer进行一个超时处理,如果超过0.5S则算作超时退出