Sobes.tech
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:

  1. URLSession görevinin iptali — asenkron işlem bir ağ isteğiyle ilişkiliyse, URLSessionTask nesnesinde cancel() metodunu çağırabilirsiniz.

  2. DispatchWorkItem kullanımı — GCD ile çalışırken, bir DispatchWorkItem oluşturabilir ve yürütmeyi durdurmak için cancel() çağırabilirsiniz.

  3. Combine ve Swift Concurrency — Combine'da aboneliği (AnyCancellable) iptal edebilir, Swift Concurrency (async/await) kullanıyorsanız Task ile cancel() ç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.