Поддержка для прерываемой библиотеки

Прерываемая библиотека

Теперь в 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();