Threader
Pretty GCD calls and easier code execution.
Overview
Threader makes GCD calls easy to read & write. It also provides a simple way to execute code where and when you want.
Installation
CocoaPods
Threader is integrated with CocoaPods!
- Add the following to your 
Podfile: 
use_frameworks!
pod 'Threader'
 
- In your project directory, run 
pod install - Import the 
Threadermodule wherever you need it - Profit
 
Manually
You can also manually add the source files to your project.
- Clone this git repo
 - Add all the Swift files in the 
Threader/subdirectory to your project - Profit
 
Threader
Using Threader you can fine-tune where and how code get executed.
Threader.DispatchAsyncMain.execute {
    /* Important main-thread code */
} 
The above simply executes the code within the block on the main-thread. Naturally, Threader also provides other execution options:
- Immediate - executes the code block immediately on the current thread.
 - DispatchAsync - executes the code block asynchronously on a given 
DispatchQueue. - DispatchAsyncMain - executes code block asynchronously on the main thread.
 - DispatchAsyncGlobal - executes the code block asynchronously on the global-queue.
 - DispatchAsyncAfter - executes the code block asynchronously at a specified 
DispatchTime, on aDispatchQueue. - DispatchAsyncBarrier - executes the code block asynchronously blocking on a given 
DispatchQueue. - DispatchSync - executes the code block synchronously on a given 
DispatchQueue. - DispatchSyncBarrier - executes the code block synchronously blocking on a given 
DispatchQueue. - Operation - executes the code block on a given 
OperationQueue. - Block - executes code from a closure.
 - Default - executes code on the current thread, or on a global 
DispatchQueuedepending on the block of code's current position in the thread. 
Dispatching code to a given queue is as easy as:
let queue = DispatchQueue.global()
Threader.DispatchAsync(queue).execute {
    /* Important background-thread code */
} 
It can even be simplified further:
Threader.DispatchAsync(.global()).execute {
    /* Important background-thread code */
} 
DispatchQueue
In previous versions of Threader, DispatchQueue was a small wrapper around C-based GCD calls. However, as of Swift 3, Apple decided to provide their own solution. Not surprisingly, the also named their wrapper DispatchQueue. Moving forward, Threader will use Apple's native implementation of DispatchQueue for all GCD related calls.