Dukungan untuk Perpustakaan yang Dapat Dihentikan
Gambaran Umum
Aspose.Slides menyediakan mekanisme pemrosesan yang dapat dihentikan untuk tugas presentasi yang memakan waktu lama, seperti deserialisasi, serialisasi, dan rendering. Mekanisme ini didasarkan pada kelas InterruptionToken dan InterruptionTokenSource.
Sebuah InterruptionToken dapat diberikan kepada LoadOptions dan diteruskan ke konstruktor Presentation. Ketika InterruptionTokenSource.interrupt() dipanggil, tugas yang memakan waktu lama yang terkait akan dihentikan.
Perpustakaan yang Dapat Dihentikan
Pada Aspose.Slides 18.4, kami memperkenalkan kelas InterruptionToken dan InterruptionTokenSource. Kelas-kelas ini memungkinkan Anda menghentikan tugas yang memakan waktu lama seperti deserialisasi, serialisasi, dan rendering.
- InterruptionTokenSource adalah sumber token yang diteruskan ke ILoadOptions.setInterruptionToken.
- Ketika ILoadOptions.setInterruptionToken diatur dan instance LoadOptions diteruskan ke konstruktor Presentation, memanggil InterruptionTokenSource.Interrupt() menghentikan setiap tugas yang memakan waktu lama yang terkait dengan Presentation tersebut.
Potongan kode berikut menunjukkan cara menghentikan tugas yang sedang berjalan:
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(); // jalankan aksi di thread terpisah
Thread.sleep(10000); // batas waktu
tokenSource.interrupt(); // hentikan konversi
FAQ
Apa tujuan dari perpustakaan interrupt Aspose.Slides?
Ini menyediakan mekanisme untuk menghentikan operasi yang memakan waktu lama—seperti memuat, menyimpan, atau merender presentasi—sebelum selesai. Hal ini berguna ketika waktu pemrosesan harus dibatasi atau tugas tidak lagi diperlukan.
Apa perbedaan antara InterruptionToken dan InterruptionTokenSource?
InterruptionTokenditeruskan ke API Aspose.Slides dan diperiksa selama operasi yang memakan waktu lama.InterruptionTokenSourcedigunakan dalam kode Anda untuk membuat token dan memicu penghentian dengan memanggilInterrupt().
Tugas apa yang dapat dihentikan?
Setiap tugas Aspose.Slides yang menerima InterruptionToken—seperti memuat presentasi dengan Presentation(path, loadOptions) atau menyimpan dengan Presentation.save(...)—dapat dihentikan.
Apakah penghentian terjadi secara langsung?
Tidak. Penghentian bersifat kooperatif: operasi secara berkala memeriksa token dan berhenti segera setelah mendeteksi bahwa Interrupt() telah dipanggil.
Apa yang terjadi jika saya memanggil Interrupt() setelah tugas sudah selesai?
Tidak ada—pemanggilan tersebut tidak berpengaruh jika tugas yang bersangkutan sudah selesai.
Apakah saya dapat menggunakan kembali InterruptionTokenSource yang sama untuk beberapa tugas?
Ya—tetapi setelah Anda memanggil Interrupt() pada sumber tersebut, semua tugas yang menggunakan tokennya akan dihentikan. Gunakan sumber token terpisah untuk mengelola tugas secara independen.