Junior — Middle
Πώς μπορεί να ακυρωθεί η εκτέλεση μιας εργασίας που έχει προγραμματιστεί με DispatchWorkItem;
sobes.tech AI
Απάντηση από AI
Για να ακυρώσετε την εκτέλεση μιας εργασίας που έχει προγραμματιστεί με DispatchWorkItem στο iOS, χρησιμοποιείτε τη μέθοδο cancel() στο ίδιο το αντικείμενο DispatchWorkItem.
Παράδειγμα:
let workItem = DispatchWorkItem {
print("Εκτέλεση εργασίας")
}
DispatchQueue.global().async(execute: workItem)
// Ακύρωση εργασίας
workItem.cancel()
Εάν η εργασία δεν έχει ξεκινήσει ακόμα, η κλήση του cancel() θα αποτρέψει την εκτέλεσή της. Μέσα στο DispatchWorkItem, μπορείτε να ελέγξετε την κατάσταση ακύρωσης με το isCancelled και να αντιδράσετε ανάλογα, για παράδειγμα:
let workItem = DispatchWorkItem {
if workItem.isCancelled {
return
}
// κύρια εργασία
}
Έτσι, η ακύρωση της εργασίας πραγματοποιείται μέσω της μεθόδου cancel() του αντικειμένου DispatchWorkItem.