Dlouhodobé operace

Balíček org.eclipse.jface.operations definuje rozhraní pro dlouhodobé operace, které vyžadují indikátory postupu nebo umožňují uživateli zrušení takové operace. Tato rozhraní se používají při implementaci dialogů průběhu a pohledů pracovní plochy.

V obecném případě by moduly plug-in měly používat podporu pracovní plochy poskytovanou prvkem IProgressService ke spouštění dlouhotrvajících operací tak, aby veškeré moduly plug-in konzistentně zobrazovali průběh takovýchto operací. Kompletní informace o dostupné podpoře dialogů průběhu a pohledů viz Podpora souběžnosti pracovní plochy. Zbytek tohoto textu se věnuje podrobnostem infrastruktury operací JFace, kterou používá pracovní plocha.

Procesy runnable a průběh

Běhová komponenta platformy definuje společné rozhraní IProgressMonitor, které se používá k hlášení o průběhu pro uživatele během provádění dlouhodobé (dlouhoběžící) operace. Klient může poskytnout monitor jako parametr do mnoha API metod platformy, když je důležité zobrazovat uživateli průběh.

JFace definuje konkrétnější rozhraní pro objekty, které implementují uživatelské rozhraní pro monitor průběhu. 

IRunnableWithProgress je rozhraní pro dlouhodobou operaci.  Metoda run pro toto rozhraní má parametr IProgressMonitor , který se používá k oznamování průběhu a kontroluje případné storno od uživatele.

IRunnableContext je rozhraní pro různá místa v uživatelském rozhraní, kde může být průběh oznamován.  Třídy, které implementují toto rozhraní, mohou použít pro zobrazování postupu a průběhu operace různé techniky.  Například ProgressMonitorDialog implementuje toto rozhraní zobrazením dialogu průběhu.  IWorkbenchWindow implementuje toto rozhraní zobrazením průběhu ve stavovém řádku okna Workbench.  WizardDialog implementuje toto rozhraní zobrazující dlouho běžící operace uvnitř stavového řádku průvodce.

Poznámka:  Uživatelské rozhraní pracovní plochy poskytuje pro operace v WorkspaceModifyOperation další podporu. Tato třída zjednodušuje implementaci časově náročných operací, které upravují pracovní prostor. Provádí mapování mezi IRunnableWithProgress a IWorkspaceRunnable.  Další informace viz dokumentace javadoc.

Modální operace

Třída ModalContext je poskytována ke spuštění operace, která je modální z pohledu kódu klienta. Používá se uvnitř různých implementací IRunnableContext.  Pokud váš modul musí čekat na dokončení dlouhodobé operace, než může pokračovat ve své činnosti, je možné použít ModalContext k úspěšnému naplnění tohoto čekání a současně zachovat uživatelské rozhraní schopné odezvy.

Když spustíte operaci v modálním kontextu, můžete zvolit její větvení do různých vláken. Pokud má fork hodnotu false, operace se spustí ve vyvolávajícím vlákně.  Pokud má fork hodnotu true,  operace se spustí v novém vlákně, vyvolávající vlákno bude blokováno a smyčka události uživatelského rozhraní poběží, dokud operace neskončí.   

Více informací o smyčce události uživatelského rozhraní najdete v Problematika vláken klientů.