長時間執行作業

org.eclipse.jface.operations 套件定義長時間執行作業的介面,這些作業需要進度指示器或允許使用者取消作業。

可執行的和進度

平台核心執行時期定義一般介面 IProgressMonitor ,在進行長時間執行作業時,您可以使用它來向使用者報告進度。 若向使用者顯示進度很重要,則從屬站可以在許多平台 API 方法中提供 monitor 作為參數。

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

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

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

附註:工作台 UI 對 WorkspaceModifyOperation 中的作業提供其他支援。這個類別簡化修改工作區的長時間執行作業的實作 。它對映 IRunnableWithProgressIWorkspaceRunnable 。請參閱 javadoc 以取得其他明細。

限制模式的作業

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

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

關於 UI 事件迴圈的詳細資訊,請參閱從屬站的執行緒作業問題