我想在閱讀excel文件時顯示進度。我共享一個Object,它包含最大行號和讀取的最後一行數。 每隔150行將值保存在我的對象中,我將其放入等待狀態,並停止讀取,直到對象解鎖。爲什麼Object#等待不是Display.asyncExec或Display.asyncExec的「合理機會」?
在我的對話窗口中,我嘗試使用syncExec或asyncExec方法更新ProgressBar
,並在Object中使用值。對象在調用方法後立即解鎖。
我知道那些方法正在等待最適合的場合來運行runnables。然而,我似乎不明白的是,爲什麼這些方法不被執行,如果沒有任何運行時,他們被稱爲?
我的實際情況是,asyncExec僅在讀取過程結束時更新ProgressBar,而synExec掛起應用程序,因爲它在對象#等待運行時無法執行。
感謝您的閱讀並感謝您的回答。
這是讀取Excel中的對象有一個'FileDialog'選擇文件。因此,我不得不用'Display.syncExec'來調用它,並且實際上是對事件循環的線程進行了死鎖。 – ArtiBucco 2012-07-10 10:19:06