thr

Threader

Pretty GCD calls and easier code execution.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

36

Maintenance

Last Commit

5yrs ago

Contributors

0

Package

Dependencies

0

License

MIT

Categories

Readme

Threader

Pretty GCD calls and easier code execution.

Version License Platform

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!

  1. Add the following to your Podfile:
use_frameworks!
pod 'Threader'
  1. In your project directory, run pod install
  2. Import the Threader module wherever you need it
  3. Profit

Manually

You can also manually add the source files to your project.

  1. Clone this git repo
  2. Add all the Swift files in the Threader/ subdirectory to your project
  3. 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 a DispatchQueue.
  • 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 DispatchQueue depending 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.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100