Megszakítható könyvtár támogatása
Áttekintés
Az Aspose.Slides egy megszakítható feldolgozási mechanizmust biztosít a hosszú ideig futó prezentációs feladatokhoz, például a deszerializáláshoz, sorosításhoz és rendereléshez. Ez a mechanizmus a InterruptionToken és a InterruptionTokenSource osztályokon alapul.
Az InterruptionToken hozzárendelhető a LoadOptions osztályhoz, és átadható a Presentation konstruktorának. Amikor a InterruptionTokenSource.interrupt() metódust meghívják, a kapcsolódó hosszú futású feladat megszakad.
Megszakítható Könyvtár
Az Aspose.Slides 18.4 verzióban bevezettük a InterruptionToken és a InterruptionTokenSource osztályokat. Lehetővé teszik a hosszú futású feladatok, például a deszerializálás, sorosítás és renderelés megszakítását.
- A InterruptionTokenSource a token(ek) forrása, amely(ek)et a ILoadOptions.setInterruptionToken kapja.
- Amikor a ILoadOptions.setInterruptionToken be van állítva, és a LoadOptions példányt átadják a Presentation konstruktorának, a InterruptionTokenSource.Interrupt() meghívása megszakítja az ezzel a Presentation kapcsolatos bármely hosszú futású feladatot.
Az alábbi kódrészlet bemutatja egy futó feladat megszakítását:
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(); // a műveletet külön szálon futtatja
Thread.sleep(10000); // időtúllépés
tokenSource.interrupt(); // a konverzió leállítása
GYIK
Mi a célja az Aspose.Slides megszakítási könyvtárnak?
Ez egy mechanizmust biztosít a hosszú futású műveletek—például prezentációk betöltése, mentése vagy renderelése—megszakítására, mielőtt befejeződnének. Hasznos, ha a feldolgozási időt korlátozni kell, vagy a feladat már nem szükséges.
Mi a különbség a InterruptionToken és a InterruptionTokenSource között?
- A
InterruptionTokenaz Aspose.Slides API felé kerül átadásra, és a hosszú futású műveletek során ellenőrzésre kerül. - A
InterruptionTokenSourcea kódban a tokenek létrehozására és a megszakítások indítására szolgál aInterrupt()hívásával.
Mely feladatok szakíthatók meg?
Bármely Aspose.Slides feladat, amely elfogad egy InterruptionToken—például egy prezentáció betöltése a Presentation(path, loadOptions) vagy mentése a Presentation.save(...) segítségével—megszakítható.
Azonnal megtörténik a megszakítás?
Nem. A megszakítás együttműködő: a művelet időközönként ellenőrzi a token-t, és amint észleli, hogy a Interrupt() meghívásra került, leáll.
Mi történik, ha a Interrupt() metódust egy már befejezett feladat után hívom meg?
Semmi—ha a megfelelő feladat már befejeződött, a hívás nem okoz semmilyen hatást.
Újra felhasználhatom ugyanazt a InterruptionTokenSource objektumot több feladathoz?
Igen—de miután meghívja a Interrupt() metódust azon a forráson, az összes, a tokenjeit használó feladat megszakad. Használjon külön tokenforrásokat a feladatok önálló kezeléséhez.