Junior — Middle
Asenkron bir işlemi nasıl durdurabilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta asenkron bir işlemi durdurmak için genellikle aşağıdaki yaklaşımlar kullanılır:
-
URLSession görevinin iptali — asenkron işlem bir ağ isteğiyle ilişkiliyse,
URLSessionTasknesnesindecancel()metodunu çağırabilirsiniz. -
DispatchWorkItemkullanımı — GCD ile çalışırken, birDispatchWorkItemoluşturabilir ve yürütmeyi durdurmak içincancel()çağırabilirsiniz. -
Combine ve Swift Concurrency — Combine'da aboneliği (
AnyCancellable) iptal edebilir, Swift Concurrency (async/await) kullanıyorsanızTaskilecancel()çağırabilirsiniz.
Swift Concurrency'de Task kullanımı örneği:
let task = Task {
for i in 1...10 {
try Task.checkCancellation() // İptal kontrolü
print(i)
try await Task.sleep(nanoseconds: 1_000_000_000)
}
}
// Daha sonra iptal etmek için:
task.cancel()
Asenkron işlemin iptal kontrolü içermesi önemlidir, aksi takdirde işlem devam edecektir.