Şu anda Grand Central Dispatch ile oynuyorum ve DispatchWorkItem
adlı bir sınıf keşfettim. Dokümantasyon biraz eksik görünüyor, bu yüzden doğru şekilde kullanma konusunda emin değilim. Aşağıdaki parçacığı oluşturdum ve farklı bir şey bekledim. Üzerine cancel
numaralı telefonu aradıktan sonra öğenin iptal edilmesi bekleniyor. Ama yineleme bir sebepten dolayı devam ediyor. Ne yaptığım hakkında yanlış bir fikrin var mı? Kod benim için iyi görünüyor.GCD'de DispatchWorkItem nasıl durdurulur?
@IBAction func testDispatchItems() {
let queue = DispatchQueue.global(attributes:.qosUserInitiated)
let item = DispatchWorkItem { [weak self] in
for i in 0...10000000 {
print(i)
self?.heavyWork()
}
}
queue.async(execute: item)
queue.after(walltime: .now() + 2) {
item.cancel()
}
}
Teşekkürler, tam olarak aradığım şey buydu. –
DispatchWorkItem iptal edildikten sonra yeniden kullanılabilir mi? – pixelfreak
@pixelfreak - Hayır. Yeniden başlatmak isterseniz yeni bir tane oluşturun. – Rob