Podpora přerušitelné knihovny

Přehled

Aspose.Slides poskytuje přerušitelný mechanismus zpracování pro dlouhotrvající úlohy prezentací, jako je deserializace, serializace a vykreslování. Tento mechanismus je založen na třídách InterruptionToken a InterruptionTokenSource.

InterruptionToken lze přiřadit k LoadOptions a předat konstruktoru Presentation. Když je zavoláno InterruptionTokenSource.interrupt(), související dlouhotrvající úloha je přerušena.

Přerušitelná knihovna

V Aspose.Slides 18.4 jsme představili třídy InterruptionToken a InterruptionTokenSource. Umožňují přerušit dlouhotrvající úlohy, jako je deserializace, serializace a vykreslování.

Následující úryvek kódu ukazuje, jak přerušit běžící úlohu:

final InterruptionTokenSource tokenSource = new InterruptionTokenSource();

Runnable interruption = new Runnable() {
    public void run() {
        LoadOptions loadOptions = new LoadOptions();
        loadOptions.setInterruptionToken(tokenSource.getToken());

        Presentation presentation = new Presentation("sample.pptx", loadOptions);
        try{
            presentation.save("sample.ppt", SaveFormat.Ppt);
        }
        finally {
            presentation.dispose();
        }
    }
};

Thread thread = new Thread(interruption);
thread.start();          // spustit akci v samostatném vláknu
Thread.sleep(10000);     // časový limit
tokenSource.interrupt(); // zastavit konverzi

Často kladené otázky

Jaký je účel přerušitelné knihovny Aspose.Slides?

Poskytuje mechanismus pro přerušení dlouhotrvajících operací — například načítání, ukládání nebo vykreslování prezentací — před jejich dokončením. To je užitečné, když je třeba omezit čas zpracování nebo úloha již není potřebná.

Jaký je rozdíl mezi InterruptionToken a InterruptionTokenSource?

  • InterruptionToken se předává API Aspose.Slides a během dlouhotrvajících operací se periodicky kontroluje.
  • InterruptionTokenSource slouží ve vašem kódu k vytváření tokenů a spouštění přerušení voláním Interrupt().

Jaké úlohy lze přerušit?

Jakákoli úloha Aspose.Slides, která přijímá InterruptionToken — například načtení prezentace pomocí Presentation(path, loadOptions) nebo uložení pomocí Presentation.save(...) — může být přerušena.

Proběhne přerušení okamžitě?

Ne. Přerušení je kooperativní: operace pravidelně kontroluje token a zastaví se, jakmile zjistí, že bylo zavoláno Interrupt().

Co se stane, když zavolám Interrupt() po dokončení úlohy?

Nic — volání nemá žádný efekt, pokud byla příslušná úloha již dokončena.

Mohu znovu použít stejný InterruptionTokenSource pro více úloh?

Ano — ale po volání Interrupt() na tomto zdroji budou všechny úlohy používající jeho tokeny přerušeny. Pro samostatné řízení úloh použijte oddělené zdroje tokenů.