SwiftyDispatch 0.3.0

SwiftyDispatch 0.3.0

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布最新发布2015年10月
SPM支持 SPM

Francis Chong维护。



SwiftyDispatch

Swift 的轻量级 GCD 包装器。主要参考自 MacRuby 的 Dispatch 模块

用法

要运行示例项目,首先克隆仓库,然后从 Example 目录中运行 pod install

队列

创建队列

// Create a serial queue
let queue = Queue("Serial", .Serial)

// Create a concurrent queue
let queue = Queue("Concurrent", .Concurrent)

// It is serial by default
let queue = Queue("Concurrent")

// Get main queue
let queue = Queue.main()

// Get global queue via QOS
let queue = Queue.concurrent(.UserInteractive)

// Get global queue via priority
let queue = Queue.concurrent(priority: .Background)

运行块

// asynchronously
queue.async {
  data = true
}

// synchronously
queue.sync {
  data = true
}

应用

queue.apply(10) {
  // some concurrent task
}

之后

queue.apply(0.3) {
  // run after 0.3 seconds
}

信号量

信号量提供了一种高效的机制,通过等待和信号的组合来同步线程。

这特别适用于控制对有限资源的访问。

let queue = Queue("sample")
let semaphore = Semaphore(0)
queue.after(1.0) {
  print "Hello"
  semaphore.signal
}
semaphore.wait // -> true

要求

  • Swift 2.0 (Xcode 7)

安装

手动

要手动在您的项目中使用此库,只需要将 Classes 目录下的所有 swift 文件拖拽到项目结构中。

待办事项?

  • [x] 队列
  • [x] 异步/同步
  • [x] 应用
  • [x] 之后
  • [x] 信号量
  • [ ] 槛
  • [ ] 组
  • [ ] 源
  • [ ] 块类

作者

Francis Chong, [email protected]

许可

SwiftyDispatch 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。