Jak mam dispatch_sync, dispatch_async, dispatch_after itp. W Swift 3, Swift 4 i późniejszych wersjach?

Mam dużo kodu w projektach Swift 2.x (lub nawet 1.x), które wyglądają tak: // 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...