Stöd för avbrottsbiblioteket
Översikt
Aspose.Slides tillhandahåller en avbrytbar bearbetningsmekanism för långvariga presentationstasks, såsom deserialisering, serialisering och rendering. Denna mekanism bygger på klasserna InterruptionToken och InterruptionTokenSource.
InterruptionToken kan tilldelas LoadOptions och skickas till Presentation‑konstruktören. När InterruptionTokenSource.interrupt() anropas avbryts den associerade långvariga uppgiften.
Avbrottsbibliotek
I Aspose.Slides 18.4 introducerade vi klasserna InterruptionToken och InterruptionTokenSource. De gör det möjligt att avbryta långvariga uppgifter såsom deserialisering, serialisering och rendering.
- InterruptionTokenSource är källan till token(s) som skickas till ILoadOptions.setInterruptionToken.
- När ILoadOptions.setInterruptionToken är satt och LoadOptions‑instansen skickas till Presentation-konstruktören, avbryter anropet av InterruptionTokenSource.Interrupt() alla långvariga uppgifter som är associerade med den Presentation.
Följande kodexempel demonstrerar hur man avbryter en pågående uppgift:
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(); // kör åtgärden i en separat tråd
Thread.sleep(10000); // tidsgräns
tokenSource.interrupt(); // stoppa konverteringen
FAQ
Vad är syftet med Aspose.Slides avbrottsbiblioteket?
Det tillhandahåller en mekanism för att avbryta långvariga operationer — såsom inläsning, sparande eller rendering av presentationer — innan de slutförs. Detta är användbart när bearbetningstiden måste begränsas eller uppgiften inte längre behövs.
Vad är skillnaden mellan InterruptionToken och InterruptionTokenSource?
InterruptionTokenskickas till Aspose.Slides‑API:et och kontrolleras under långvariga operationer.InterruptionTokenSourceanvänds i din kod för att skapa token och utlösa avbrott genom att anropaInterrupt().
Vilka uppgifter kan avbrytas?
Alla Aspose.Slides‑uppgifter som accepterar en InterruptionToken — såsom att ladda en presentation med Presentation(path, loadOptions) eller spara med Presentation.save(...) — kan avbrytas.
Sker avbrott omedelbart?
Nej. Avbrott är samarbetsbaserat: operationen kontrollerar token periodiskt och stoppar så snart den upptäcker att Interrupt() har anropats.
Vad händer om jag anropar Interrupt() efter att en uppgift redan har slutförts?
Ingenting — anropet har ingen effekt om den motsvarande uppgiften redan har slutförts.
Kan jag återanvända samma InterruptionTokenSource för flera uppgifter?
Ja — men efter att du har anropat Interrupt() på den källan avbryts alla uppgifter som använder dess token. Använd separata token‑källor för att hantera uppgifter oberoende.