2013-06-26 50 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創建爲模態,然後啓動工作線程並在執行它之後,將進度設置爲可見。你可以在線程中更新它,也可以在線程中關閉它。主線程將阻塞,直到工作完成並且仍然可見。