¿Debo envolver mis llamadas Alamofire dentro de dispatch_async?

func authenticate(completion:(success: Bool) -> Void) { let qos = Int(QOS_CLASS_USER_INITIATED.value) dispatch_async(dispatch_get_global_queue(qos, 0)){ () -> Void in Alamofire.request(.POST, CONSTANTS.Domain+"/accounts", parameters: ["" : ""]).responseJSON { (req, res, json, error) in dispatch_async(dispatch_get_main_queue()){ completion(success: true) } } } } 

O bien, ¿puedo omitir el envío y solo mantener mi código simple?

Alamofire está diseñado para ser asíncrono. En otra nota, si el método tiene como callback, lo más probable es que sea asíncrono. Entonces, sí, puede omitir las llamadas dispatch_async.