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í.
- InterruptionTokenSource je zdroj tokenu(ů) předávaných do ILoadOptions.setInterruptionToken.
- Když je nastaven ILoadOptions.setInterruptionToken a instance LoadOptions je předána konstruktoru Presentation, volání InterruptionTokenSource.Interrupt() přeruší jakoukoli dlouhotrvající úlohu spojenou s touto Presentation.
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?
InterruptionTokense předává API Aspose.Slides a během dlouhotrvajících operací se periodicky kontroluje.InterruptionTokenSourceslouží ve vašem kódu k vytváření tokenů a spouštění přerušení volánímInterrupt().
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ů.