Wie kann ich "dispatch_sync", "dispatch_async", "dispatch_after" usw. in Swift 3, Swift 4 und darüber hinaus ausführen?

Ich habe viel Code in Swift 2.x- (oder sogar 1.x-) Projekten, der so aussieht:

// Move to a background thread to do some long running work
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
    let image = self.loadOrGenerateAnImage()
    // Bounce back to the main thread to update the UI
    dispatch_async(dispatch_get_main_queue()) {
        self.imageView.image = image
    }
}

Oder solche Dinge, um die Ausführung zu verzögern:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {
    print("test")
}

Oder jegliche andere Verwendung der Grand Central Dispatch API ...

Nun, da ich mein Projekt in Xcode 8 (Beta) für Swift 3 geöffnet habe, erhalte ich alle möglichen Fehler. Einige von ihnen bieten an, meinen Code zu reparieren, aber nicht alle Korrekturen produzieren funktionierenden Code. Was mache ich dagegen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage