轉自:http://www.tkk7.com/mydearvivian/articles/246028.html 在RCP程序中,常碰到某個線程執行時間比較很長的情況,若處理不好,用戶體驗度是很糟糕的,如用戶點了一個功能按鈕后,進入功能執行,發現程序長時間沒有任何響應,無疑這種情況下,用戶是無法忍受的。 在這種情況下我們可以通過提供進度條對話框來改善用戶體驗度: 1)單步執行 程序執行期間不允許用戶終止,貼下程序代碼段
若允許用戶終止任務執行 則progress.run()第二個參數傳true即可; monitor.isCanceled()方法判斷當前是否被用戶取消 2)異步執行 在RCP中要在非UI線程中執行UI線程的操作,最簡單的方式就是display.syncExec或者display.asyncExec,如果UI線程所需的時間較長的話,則應該使用display.asyncExec 在執行異步線程的時候,我們一般應當繼承Job或者UIJob類:UIJob是在UI線程中運行的,可以直接訪問窗體組件。Job是在非UI線程中運行,如果在里面想訪問窗體組件,需要通過Display.asynExec()或者synExec方式來執行。UIJob要盡量的短,不要過多的占用UI線程的時間。 也貼上例子吧:
posted on 2009-07-08 14:50 一杯清茶 閱讀(1275) 評論(1) 編輯 收藏 所屬分類: RCP
很好,學習了 回復 更多評論
Powered by: BlogJava Copyright © 一杯清茶