Pretty GCD calls and easier code execution.
Threader makes GCD calls easy to read & write. It also provides a simple way to execute code where and when you want.
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
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
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 */
}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.