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