Ondersteuning voor onderbreekbare bibliotheek
Overzicht
Aspose.Slides biedt een onderbreekbare verwerkingsmechanisme voor langdurige presentatietaken, zoals deserialisatie, serialisatie en rendering. Dit mechanisme is gebaseerd op de InterruptionToken- en InterruptionTokenSource-klassen.
Een InterruptionToken kan toegewezen worden aan LoadOptions en doorgegeven aan de Presentation‑constructor. Wanneer InterruptionTokenSource.interrupt() wordt aangeroepen, wordt de bijbehorende langdurige taak onderbroken.
Onderbreekbare bibliotheek
In Aspose.Slides 18.4, hebben we de klassen InterruptionToken en InterruptionTokenSource geïntroduceerd. Ze stellen u in staat om langdurige taken, zoals deserialisatie, serialisatie en rendering, te onderbreken.
- InterruptionTokenSource is de bron van de token(s) die worden doorgegeven aan ILoadOptions.setInterruptionToken.
- Wanneer ILoadOptions.setInterruptionToken is ingesteld en de LoadOptions‑instantie wordt doorgegeven aan de Presentation‑constructor, onderbreekt het aanroepen van InterruptionTokenSource.Interrupt() elke langdurige taak die aan die Presentation is gekoppeld.
De volgende codefragment toont hoe een lopende taak onderbroken kan worden:
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(); // voer de actie uit in een aparte thread
Thread.sleep(10000); // tijdslimiet
tokenSource.interrupt(); // stop de conversie
FAQ
Wat is het doel van de Aspose.Slides onderbreekbibliotheek?
Het biedt een mechanisme om langdurige bewerkingen—zoals het laden, opslaan of renderen van presentaties—onder te breken voordat ze voltooid zijn. Dit is handig wanneer de verwerkingstijd beperkt moet worden of de taak niet langer nodig is.
Wat is het verschil tussen InterruptionToken en InterruptionTokenSource?
InterruptionTokenwordt doorgegeven aan de Aspose.Slides‑API en tijdens langdurige bewerkingen gecontroleerd.InterruptionTokenSourcewordt in uw code gebruikt om tokens aan te maken en onderbrekingen te activeren doorInterrupt()aan te roepen.
Welke taken kunnen worden onderbroken?
Elke Aspose.Slides‑taak die een InterruptionToken accepteert—zoals het laden van een presentatie met Presentation(path, loadOptions) of opslaan met Presentation.save(...)—kan onderbroken worden.
Wordt onderbreking direct uitgevoerd?
Nee. Onderbreking is coöperatief: de bewerking controleert periodiek de token en stopt zodra wordt geconstateerd dat Interrupt() is aangeroepen.
Wat gebeurt er als ik Interrupt() aanroep nadat een taak al voltooid is?
Niets—de aanroep heeft geen effect als de betreffende taak al voltooid is.
Kan ik dezelfde InterruptionTokenSource hergebruiken voor meerdere taken?
Ja—maar nadat u Interrupt() op die bron hebt aangeroepen, zullen alle taken die zijn tokens gebruiken worden onderbroken. Gebruik afzonderlijke token‑bronnen om taken onafhankelijk te beheren.