Great, this is the libdispatch API that I’ve been dreaming about! I think it meshes well with the rest of Swift.
I am concerned about one thing though: the naming of the DispatchGroup methods synchronously/asynchronously.
1. They are hard to type correctly and ugly to look at.
2. sync/async are already well-established abbreviations in the tech industry.
3. They are adjectives without verbs, which goes against the API Design Guidelines.
I suggest sticking with the naming from the C API. For example:
let queue = …
queue.dispatchAsync {
…
}