Skip to content

gabrielPeart/Dispatch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Dispatch

Swift 2.2 Platforms

Podspec License

codebeat badge

Installation

Dispatch is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Dispatch'

Usage

Basic

Dispatch.async(dispatch_get_main_queue()) {
  //Code to be run on the main thread
}
Or using the helpers provided by Dispatch.Queue enum
Dispatch.async(Queue.main) {
  //Code to be run on the main thread
}
Or using the overloaded method to run on the main thread
Dispatch.async {
  //Code to be run on the main thread
}

Types of Dispatch

Async

Dispatch.async(Queue.main) {
  //Code to be run on the main thread
}

Sync

let someCustomQueue = dispatch_queue_create("custom.queue.dispatch", DISPATCH_QUEUE_CONCURRENT)
Dispatch.sync(someCustomQueue) {
  //Code to be synchronously on someCustomQueue
}

After

Dispatch.after(1.0, queue: Queue.main) {
  //Code to be run on the main thread after 1 second
}
Or using the overloaded method to run on the main thread
Dispatch.after(1.0) {
  //Code to be run on the main thread after 1 second
}

Once

let token : dispatch_once_t
Dispatch.once(&token) {
  //Code to be run only once in App lifetime
}

Queue Helpers

Main queue

let mainQueue = Queue.main 

Custom queue

let customConcurrentQueue = Queue.custom("custom.concurrent.queue.dispatch", Queue.Atribute.concurrent)
let customSerialQueue = Queue.custom("custom.serial.queue.dispatch", Queue.Atribute.serial)

Global queues

let priority = 0 // or you use one of the Global priorities (ex: Queue.Priority.UserInteractive)
let globalQueue = Queue.global(priority)

// For comodity there are helpers for getting the Global queues

let globalUserInteractiveQueue = Queue.globalUserInteractive
let globalUserInitiatedQueue = Queue.globalUserInitiated
let globalUtilityQueue = Queue.globalUtility
let globalBackgroundQueue = Queue.globalBackground

TODO

  • Chainable methods
  • Unit Tests
  • Travis CI
  • More examples

Authors

License

Dispatch is available under the MIT license. See the LICENSE file for more info.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Swift 90.8%
  • Ruby 9.2%