Поддержка для прерываемой библиотеки
Прерываемая библиотека
Теперь в Aspose.Slides добавлены структуры InterruptionToken и класс InterruptionTokenSource. Эти типы поддерживают прерывание долгих задач, таких как десериализация, сериализация или рендеринг. InterruptionTokenSource представляет собой источник токена или нескольких токенов, переданных в ILoadOptions.InterruptionToken. Когда ILoadOptions.InterruptionToken установлен и этот экземпляр LoadOptions передан в конструктор Presentation, любая долгосрочная задача, связанная с этой презентацией, будет прервана, когда будет вызван метод InterruptionTokenSource.Interrupt.
Ниже приведен фрагмент кода, демонстрирующий прерывание выполняемой задачи.
// For complete examples and data files, please go to https://github.com/Muhammad-Adnan-Ahmad/Aspose.Slides-for-Java | |
final InterruptionTokenSource tokenSource = new InterruptionTokenSource(); | |
Runnable interruption = new Runnable() { | |
public void run() { | |
LoadOptions loadOptions = new LoadOptions(); | |
loadOptions.setInterruptionToken(tokenSource.getToken()); | |
Presentation pres = new Presentation("pres.pptx", loadOptions); | |
try{ | |
pres.getSlides().get_Item(0).getThumbnail(new Dimension(960, 720)); | |
pres.save("pres.ppt", SaveFormat.Ppt); | |
} | |
finally { | |
pres.dispose(); | |
} | |
} | |
}; | |
Thread thread = new Thread(interruption);// run action in a separate thread | |
thread.start(); | |
Thread.sleep(5000); // some work | |
tokenSource.interrupt(); | |