В настоящее время я пытаюсь упростить фоновый поток для выполнения основного потока в моем приложении.
Я делаю это следующим образом:
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
, но я сомневаюсь, что это возможно