Υποστήριξη για τη Διακόψιμη βιβλιοθήκη
Επισκόπηση
Aspose.Slides παρέχει έναν μη διακοπτόμενο μηχανισμό επεξεργασίας για μακροχρόνιες εργασίες παρουσίασης, όπως αποσειροποίηση, σειροποίηση και απόδοση. Αυτός ο μηχανισμός βασίζεται στις κλάσεις InterruptionToken και InterruptionTokenSource.
Ένα InterruptionToken μπορεί να εκχωρηθεί στο LoadOptions και να περαστεί στον κατασκευαστή Presentation. Όταν κληθεί το InterruptionTokenSource.interrupt(), η σχετική μακροχρόνια εργασία διακόπτεται.
Διακόψιμη βιβλιοθήκη
Στο Aspose.Slides 18.4, εισάγαμε τις κλάσεις InterruptionToken και InterruptionTokenSource. Σας επιτρέπουν να διακόπτετε μακροχρόνιες εργασίες όπως αποσειροποίηση, σειροποίηση και απόδοση.
- InterruptionTokenSource είναι η πηγή των token(s) που περνιούνται στο ILoadOptions.setInterruptionToken.
- Όταν ο ILoadOptions.setInterruptionToken ορίζεται και το αντικείμενο LoadOptions περνιέται στον κατασκευαστή Presentation, η κλήση του InterruptionTokenSource.Interrupt() διακόπτει οποιαδήποτε μακροχρόνια εργασία που σχετίζεται με αυτό το Presentation.
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(); // εκτελέστε τη δράση σε ξεχωριστό νήμα
Thread.sleep(10000); // χρονικό όριο
tokenSource.interrupt(); // διακόψτε τη μετατροπή
ΣΥΧΝΕΣ ΕΡΩΤΗΣΕΙΣ
Ποιος είναι ο σκοπός της βιβλιοθήκης διακοπής του Aspose.Slides;
Παρέχει έναν μηχανισμό για τη διακοπή μακροχρόνιων λειτουργιών — όπως η φόρτωση, η αποθήκευση ή η απόδοση παρουσιάσεων — προτού ολοκληρωθούν. Αυτό είναι χρήσιμο όταν πρέπει να περιοριστεί ο χρόνος επεξεργασίας ή όταν η εργασία δεν χρειάζεται πια.
Ποια είναι η διαφορά μεταξύ του InterruptionToken και του InterruptionTokenSource;
InterruptionTokenπερνιέται στο API του Aspose.Slides και ελέγχεται κατά τη διάρκεια των μακροχρόνιων λειτουργιών.InterruptionTokenSourceχρησιμοποιείται στον κώδικά σας για τη δημιουργία tokens και την έναυση διακοπών καλώνταςInterrupt().
Ποιες εργασίες μπορούν να διακοπούν;
Οποιαδήποτε εργασία Aspose.Slides που δέχεται ένα InterruptionToken — όπως η φόρτωση μιας παρουσίασης με Presentation(path, loadOptions) ή η αποθήκευση με Presentation.save(...) — μπορεί να διακοπεί.
Συμβαίνει η διακοπή άμεσα;
Όχι. Η διακοπή είναι συνεργατική: η λειτουργία ελέγχει περιοδικά το token και σταματά αμέσως μόλις εντοπίσει ότι το Interrupt() έχει κληθεί.
Τι συμβαίνει αν καλέσω το Interrupt() μετά την ολοκλήρωση μιας εργασίας;
Τίποτα — η κλήση δεν έχει καμία επίδραση εάν η αντίστοιχη εργασία έχει ήδη ολοκληρωθεί.
Μπορώ να επαναχρησιμοποιήσω το ίδιο InterruptionTokenSource για πολλαπλές εργασίες;
Ναι — αλλά αφού καλέσετε το Interrupt() σε αυτήν την πηγή, όλες οι εργασίες που χρησιμοποιούν τα tokens της θα διακοπούν. Χρησιμοποιήστε ξεχωριστές πηγές token για να διαχειριστείτε τις εργασίες ανεξάρτητα.