Supporto per la libreria interruttibile

Panoramica

Aspose.Slides fornisce un meccanismo di elaborazione interrompibile per operazioni di presentazione a lunga durata, 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 Presentation. Quando viene chiamato InterruptionTokenSource.interrupt(), l’operazione a lunga durata associata viene interrotta.

Libreria interruttibile

In Aspose.Slides 18.4, abbiamo introdotto le classi InterruptionToken e InterruptionTokenSource. Esse consentono di interrompere operazioni a lunga durata come deserializzazione, serializzazione e rendering.

Il seguente frammento di codice dimostra l’interruzione di un’operazione in corso:

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();          // esegui l'azione in un thread separato
Thread.sleep(10000);     // tempo di attesa
tokenSource.interrupt(); // interrompi la conversione

FAQ

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

Fornisce un meccanismo per interrompere operazioni a lunga durata—come il caricamento, il salvataggio o il rendering di presentazioni—prima che terminino. È utile quando il tempo di elaborazione deve essere limitato o l’operazione non è più necessaria.

Qual è la differenza tra InterruptionToken e InterruptionTokenSource?

  • InterruptionToken viene passato all’API Aspose.Slides e verificato durante le operazioni a lunga durata.
  • InterruptionTokenSource viene utilizzato nel tuo codice per creare token e attivare interruzioni chiamando Interrupt().

Quali attività possono essere interrotte?

Qualsiasi attività Aspose.Slides che accetta un InterruptionToken—come il caricamento di una presentazione con Presentation(path, loadOptions) o il salvataggio con Presentation.save(...)—può essere interrotta.

L’interruzione avviene immediatamente?

No. L’interruzione è cooperativa: l’operazione controlla periodicamente il token e si arresta non appena rileva che Interrupt() è stato chiamato.

Cosa succede se chiamo Interrupt() dopo che un’operazione è già terminata?

Niente—la chiamata non ha effetto se l’operazione corrispondente è già terminata.

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. Usa sorgenti di token separate per gestire le attività in modo indipendente.