Supporto per una libreria interrompibile

Panoramica

Aspose.Slides fornisce un meccanismo di elaborazione interrompibile per attività di presentazione a lungo termine, come deserializzazione, serializzazione e rendering. Questo meccanismo si basa sulle classi InterruptionToken e InterruptionTokenSource.

Un InterruptionToken può essere assegnato a LoadOptions e passato al costruttore di Presentation. Quando viene chiamato InterruptionTokenSource.interrupt, l’attività a lungo termine associata viene interrotta.

Libreria Interrompibile

Aspose.Slides per Python tramite Java fornisce le classi InterruptionToken e InterruptionTokenSource. Consentono di interrompere attività a lungo termine come deserializzazione, serializzazione e rendering.

Il seguente frammento di codice dimostra come interrompere un’attività in esecuzione:

from concurrent.futures import ThreadPoolExecutor
import time

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import InterruptionTokenSource, LoadOptions, Presentation, SaveFormat


token_source = InterruptionTokenSource()


def convert_presentation():
    load_options = LoadOptions()
    load_options.setInterruptionToken(token_source.getToken())

    presentation = Presentation("sample.pptx", load_options)
    try:
        presentation.save("sample.ppt", SaveFormat.Ppt)
    finally:
        presentation.dispose()


with ThreadPoolExecutor(max_workers=1) as executor:
    conversion_task = executor.submit(convert_presentation)  # Esegui l'azione in un thread separato.
    time.sleep(10)  # Tempo scaduto.
    token_source.interrupt()  # Interrompi la conversione.
    conversion_task.result()

FAQ

Qual è lo scopo della libreria di interruzione di Aspose.Slides?

Fornisce un meccanismo per interrompere operazioni a lungo termine — come il caricamento, il salvataggio o il rendering di presentazioni — prima che vengano completate. È utile quando il tempo di elaborazione deve essere limitato o l’attività non è più necessaria.

Qual è la differenza tra InterruptionToken e InterruptionTokenSource?

Quali attività possono essere interrotte?

Qualsiasi attività di Aspose.Slides che accetta un InterruptionToken — ad esempio il caricamento di una presentazione con Presentation o il salvataggio con Presentation.save — può essere interrotta.

L’interruzione avviene immediatamente?

No. L’interruzione è cooperativa: l’operazione verifica periodicamente il token e si arresta non appena rileva che interrupt è stato chiamato.

Cosa succede se chiamo interrupt dopo che un’attività è già terminata?

Niente — la chiamata non ha effetto se l’attività corrispondente è già completata.

Posso riutilizzare lo stesso InterruptionTokenSource per più attività?

Sì — ma dopo aver chiamato interrupt su quella sorgente, tutte le attività che usano i suoi token verranno interrotte. Utilizza sorgenti di token separate per gestire le attività in modo indipendente.