Como envio dispatch_sync, dispatch_async, dispatch_after etc. no Swift 3, Swift 4 e além?

Eu tenho muito código nos projetos Swift 2.x (ou até 1.x) que se parecem com isso: // 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...