Saat ini, saya mencoba menyederhanakan thread latar belakang ke eksekusi thread utama di aplikasi saya.
Cara saya melakukannya adalah ini:
import Foundation
infix operator ~> {}
private let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)
func ~> (backgroundClosure: () -> (), mainClosure: () -> ()) {
dispatch_async(queue) {
backgroundClosure()
dispatch_async(dispatch_get_main_queue(), mainClosure)
}
}
yang memungkinkan saya melakukan sesuatu seperti:
{ println("executed in background thread") } ~> { println("executed in main thread") }
Sekarang... Saya ingin memperluas fungsi ini agar berpotensi dapat dispatch_after
ke thread utama, jadi mungkin saya ingin fungsinya dipanggil 0,25 detik kemudian atau semacamnya.
Apakah ada cara untuk mencapai ini dengan memasukkan parameter?
Idealnya, saya bisa mengimplementasikan sesuatu seperti backgroundClosure ~>(0.25) mainClosure
, tapi saya ragu itu mungkin