2013-06-26 52 views

回答

0
  1. fork在呼叫参数运行到false
  2. 保持“抽”的UI事件 - 见Display::readAndDispatch了解详情。

你肯定这应该在UI线程来完成?在大多数情况下,这是很容易在非UI线程做最终卸载UI的东西与Display::asyncExecDisplay::syncExec

+0

感谢很多答案。是的,我相信我必须在UI线程上完成我的工作 – Kirill

0

你可以试试dlg.paintAll(dlg.getGraphics());,但手动刷新的问题是,对话框只刷新给定intervalls,当你调用它。因此,当用户点击其他窗口到前面,并希望稍后检查进度有多远时,在下一次刷新发生之前他不会看到它。

为什么你不能在一个线程中执行代码?您将ProgressDialog创建为模态,然后启动工作线程并在执行它之后,将进度设置为可见。你可以在线程中更新它,也可以在线程中关闭它。主线程将阻塞,直到工作完成并且仍然可见。