長時間執行作業

org.eclipse.jface.operations 套件定義長時間執行作業的介面,這些作業需要進度指示器或允許使用者取消作業。這些介面用於工作台進度對話框和視圖的實作方式中。

一般而言,外掛程式應使用 IProgressService 中所提供的工作台支援, 來執行長時間作業,以便所有外掛程式都呈現一致的進度。請參閱工作台並行支援,以取得有關進度對話框和視圖可用支援的完整討論。這個討論的其餘部分 強調顯示工作台所使用之 JFace 作業基礎架構的詳細資料。

可執行的和進度

平台執行時期定義共用介面 IProgressMonitor, 在進行長時間執行作業時,您可以使用它來向使用者報告進度。 如果向使用者顯示進度很重要,則用戶端可以在許多平台 API 方法中提供 monitor 作為參數。

JFace 定義物件的其他特定介面,這些物件實作進度監視器的使用者介面。

IRunnableWithProgress 是長時間執行作業的介面。這個介面的 run 方法有 IProgressMonitor 參數,您可以使用它來報告進度並檢查使用者取消狀態。

IRunnableContext 是在 UI 中不同位置的介面,可以報告進度。可以選擇實作這個介面的類別 使用不同技巧來顯示進度和執行作業。例如,ProgressMonitorDialog 顯示進度對話框來實作這個介面。 IWorkbenchWindow 是在工作台視窗的狀態行顯示進度來實作這個介面。WizardDialog 實作這個介面是以在精靈狀態行顯示長時間執行作業。

附註: 工作台 UI 對 WorkspaceModifyOperation 中的作業提供了其他的支援。 這個類別會簡化長時間執行之修改工作區作業的實作。它會在 IRunnableWithProgressIWorkspaceRunnable 之間對映。  請參閱 Javadoc 以取得進一步詳細資料。

限制模式的作業

自用戶端程式碼的視景來看,提供 ModalContext 類別是為了執行限制模式的作業。 在 IRunnableContext 的不同實作內使用它。如果外掛程式需要等待完成長時間執行作業之後才能 繼續執行,您可以使用 ModalContext 完成這個作業,同時仍保持使用者介面繼續回應。

在限制模式的環境定義執行某作業時,您可以選擇在另一個執行緒分出該作業。 如果分出是假的,則會在呼叫執行緒中執行這項作業。如果分出 是真的,就會在新執行緒執行這項作業,會暫停執行呼叫執行緒,UI 事件迴圈會一直執行直到作業終止。

如果需要 UI 事件迴圈的詳細資訊,請參閱用戶端的執行緒作業問題