İçeriğe geç

DispatchSourceTimer kullanımı

Merhabalar bu yazımda İOS ile nasıl kullanışlı bir şekilde Thread zamanlayıcısı yaratırız bunu göstereceğim.

Bazı işlemlerin sürekli olarak süre aralığı ile tekrarlanmasını veya bir sefere masus zamana bağlı çalışmasını isteyebiliriz. Bu işlemleri normal olarak Timer sınıfı ile gerçekleştirebiliyoruz ancak burada kullandığım Timer Thread bağlı bir şekilde çalışır ve duruma göre kontrol edilip farklı işleme geçiş yapılabilinir.

Bu işlemi gerçekleştirmek için DispatchSourceTimer sınıfından yararlanmaktayız.

Aşağıda yazdığım örnekleri inceleyerek zamanlayıcının kullanımını görebilirsiniz.

import UIKit

class testVC: UIViewController {

    var timer: DispatchSourceTimer?
    
    override func viewDidLoad() {
        super.viewDidLoad()

    }

    func testWorker() {
        
        let globolQ = DispatchQueue.global()
     
        timer?.cancel()
        
        timer = DispatchSource.makeTimerSource(flags: [], queue: globolQ)
        
        timer?.scheduleOneshot(deadline: .now() + 3)
        
        timer?.setEventHandler(handler: { 
            print("code work.")
        })
        
        timer?.resume()
    
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        testWorker() 
    }

}

schedule fonksiyonunu değiştirebilir, sürekli olarak çalışmasını sağlayabilirsiniz.

timer?.scheduleRepeating(deadline: .now() + 2, interval: 2)

 

 

Tarih:iOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca