ขณะนี้ ฉันกำลังพยายามปรับปรุงเธรดพื้นหลังให้เป็นการดำเนินการเธรดหลักในแอปพลิเคชันของฉัน
วิธีที่ฉันทำคือ:
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)
}
}
ซึ่งจะให้ฉันทำสิ่งที่ชอบ:
{ println("executed in background thread") } ~> { println("executed in main thread") }
ตอนนี้... ฉันต้องการขยายฟังก์ชันนี้เพื่อให้สามารถ dispatch_after
ไปยังเธรดหลักได้ ดังนั้นบางทีฉันอาจต้องการให้มันถูกเรียกในภายหลัง 0.25 วินาทีหรืออะไรสักอย่าง
มีวิธีใดที่จะบรรลุเป้าหมายนี้โดยส่งพารามิเตอร์หรือไม่?
ตามหลักการแล้ว ฉันจะสามารถใช้บางอย่างเช่น backgroundClosure ~>(0.25) mainClosure
ได้ แต่ฉันสงสัยว่าจะเป็นไปได้