GCDSwift 0.2.0

GCDSwift 0.2.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2015年9月
SPM支持 SPM

Mark Smith 维护。



GCDSwift 0.2.0

  • Mark Smith

GCDSwift

GCDSwift 是 Grand Central Dispatch 最常用功能的 Swift 封装。它有四个主要目标

  • 将扁平的 C API 组织成适当的类。
  • 使用意在言外的名称来区分同步和异步函数。
  • 使用更方便的参数,如时间间隔。
  • 添加便利方法。

GCDSwift 定义了与 GCDObjC 相同的 API。

使用方法

GCDSwift 需要 Swift 2.0。

有关使用示例,请参阅 GCDSwiftTests.m

GCDQueue

队列在 GCDQueue 类中实现。

  • 全局队列的便利访问器
class var mainQueue: GCDQueue { get }
class var globalQueue: GCDQueue { get }
class var highPriorityGlobalQueue: GCDQueue { get }
class var lowPriorityGlobalQueue: GCDQueue { get }
class var backgroundPriorityGlobalQueue: GCDQueue { get }
  • 创建串行和并发队列
class func serialQueue() -> GCDQueue
class func concurrentQueue() -> GCDQueue
  • 将块排队以异步执行
func queueBlock(block: dispatch_block_t)
func queueBlock(block: dispatch_block_t, afterDelay seconds: Double)
func queueBlock(block: dispatch_block_t, inGroup group: GCDGroup)
  • 将块排队以同步执行
func queueAndAwaitBlock(block: dispatch_block_t)
func queueAndAwaitBlock(block: ((Int) -> Void), iterationCount count: Int)
  • 将屏障块排队以同步或异步执行
func queueBarrierBlock(block: dispatch_block_t)
func queueAndAwaitBarrierBlock(block: dispatch_block_t)
  • 在组上排队通知块
func queueNotifyBlock(block: dispatch_block_t, inGroup group: GCDGroup)
  • 挂起和恢复队列
func suspend()
func resume()

GCDSemaphore

信号量在 GCDSemaphore 类中实现。

  • 创建信号量
GCDSemaphore()
GCDSemaphore(value: CLong)
  • 在信号量上进行签发和等待
func signal() -> Bool
func wait()
func wait(seconds: Double) -> Bool

GCDGroup

组在 GCDGroup 类中实现。

  • 创建组
GCDGroup()
  • 进入和离开组
func enter()
func leave()
  • 等待组的完成
func wait()
func wait(seconds: Double) -> Bool