org.eclipse.jface.operations 套件定義長時間執行作業的介面,這些作業需要進度指示器或允許使用者取消作業。
平台核心執行時期定義一般介面 IProgressMonitor,在進行長時間執行作業時,您可以使用它來向使用者報告進度。 若向使用者顯示進度很重要,則用戶端可以在許多平台 API 方法中提供 monitor 作為參數。
JFace 定義物件的其他特定介面,這些物件實作進度監視器的使用者介面。
IRunnableWithProgress 是長時間執行作業的介面。這個介面的 run 方法有 IProgressMonitor 參數,您可以使用它來報告進度並檢查使用者取消狀態。
IRunnableContext 是在 UI 中不同位置的介面,可以報告進度。可以選擇實作這個介面的類別 使用不同技巧來顯示進度和執行作業。例如,ProgressMonitorDialog 顯示進度對話框來實作這個介面。 IWorkbenchWindow 是在工作台視窗的狀態行顯示進度來實作這個介面。WizardDialog 實作這個介面是以在精靈狀態行顯示長時間執行作業。
附註:工作台 UI 對 WorkspaceModifyOperation 中的作業提供其他支援。這個類別簡化修改工作區的長時間執行作業的實作 。它對映 IRunnableWithProgress 與 IWorkspaceRunnable 。請參閱 javadoc 以取得其他詳細資料。
自用戶端程式碼的視景來看,提供 ModalContext 類別是為了執行限制模式的作業。 在 IRunnableContext 的不同實作內使用它。如果外掛程式需要等待完成長時間執行作業之後才能 繼續執行,您可以使用 ModalContext 完成這個作業,同時仍保持使用者介面繼續回應。
在限制模式的環境定義執行某作業時,您可以選擇在另一個執行緒分出該作業。 如果分出是假的,那麼會在呼叫執行緒中執行此作業。如果分出 是真的,就會在新執行緒執行此作業,會暫停執行呼叫執行緒,UI 事件迴圈會一直執行直到作業終止。
關於 UI 事件迴圈的詳細資訊,請參閱用戶端的執行緒作業問題。