Interruptable Kütüphane Desteği

Genel Bakış

Aspose.Slides, serileştirme, seriden çıkarma ve render gibi uzun süren sunum görevleri için kesilebilir bir işleme mekanizması sağlar. Bu mekanizma InterruptionToken ve InterruptionTokenSource sınıflarına dayanır.

InterruptionToken, LoadOptions nesnesine atanabilir ve Presentation yapıcısına geçirilebilir. InterruptionTokenSource.interrupt() çağrıldığında, ilgili uzun süren görev kesilir.

Kesilebilir Kütüphane

Aspose.Slides 18.4 sürümünde, InterruptionToken ve InterruptionTokenSource sınıflarını tanıttık. Bu sınıflar, seriden çıkarma, serileştirme ve render gibi uzun süren görevleri kesmenize olanak tanır.

Aşağıdaki kod parçacığı, çalışan bir görevin nasıl kesileceğini gösterir:

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();          // işlemi ayrı bir iş parçacığında çalıştır
Thread.sleep(10000);     // zaman aşımı
tokenSource.interrupt(); // dönüşüm durdur

SSS

Aspose.Slides kesinti kütüphanesinin amacı nedir?

Tamamlanmadan önce uzun süren işlemleri—sunumları yükleme, kaydetme veya render etme gibi—kesmek için bir mekanizma sağlar. İşleme süresinin sınırlı olması gerektiğinde veya göreve artık ihtiyaç duyulmadığında faydalıdır.

InterruptionToken ile InterruptionTokenSource arasındaki fark nedir?

  • InterruptionToken, Aspose.Slides API’sine geçirilir ve uzun süren işlemler sırasında kontrol edilir.
  • InterruptionTokenSource, kodunuzda belirteç oluşturmak ve Interrupt() çağırarak kesintileri tetiklemek için kullanılır.

Hangi görevler kesilebilir?

[InterruptionToken] kabul eden herhangi bir Aspose.Slides görevi—örneğin Presentation(path, loadOptions) ile bir sunum yüklemek veya Presentation.save(...) ile kaydetmek—kesilebilir.

Kesinti hemen gerçekleşir mi?

Hayır. Kesinti işbirliklidir: işlem periyodik olarak belirteci kontrol eder ve Interrupt() çağrıldığını fark eder etmez durur.

Bir görev zaten tamamlandıktan sonra Interrupt() çağırırsam ne olur?

Hiçbir şey—ilgili görev zaten tamamlandıysa çağrı hiçbir etki yapmaz.

Aynı InterruptionTokenSource öğesini birden fazla görevde yeniden kullanabilir miyim?

Evet—ancak bu kaynağa Interrupt() çağrısı yaptıktan sonra, onun belirteçlerini kullanan tüm görevler kesilir. Görevleri bağımsız yönetmek için ayrı belirteç kaynakları kullanın.