Threader 1.1.0

Threader 1.1.0

测试测试过
Lang语言 SwiftSwift
许可 MIT
发布最后发布2016年10月
SPM支持 SPM

Mitch Treece 维护。



Threader 1.1.0

Threader

漂亮的 GCD 调用,更容易执行代码。

概述

Threader 使 GCD 调用易于阅读和编写。它还提供了一种简单的方法来在您需要的地方和时间执行代码。

安装

手动安装

您还可以手动将源文件添加到您的项目中。

  1. 克隆此 git 仓库
  2. Threader/ 子目录中的所有 Swift 文件添加到您的项目中
  3. 完成

Threader

使用 Threader 您可以精细调整代码在哪里以及如何执行。

Threader.DispatchAsyncMain.execute {
    /* Important main-thread code */
}

上面的代码简单地在主线程中执行块内的代码。当然,Threader 也提供了其他执行选项

  • 立即执行 - 在当前线程上立即执行代码块。
  • DispatchAsync - 在给定的 DispatchQueue 上异步执行代码块。
  • DispatchAsyncMain - 在主线程上异步执行代码块。
  • DispatchAsyncGlobal - 在全局队列上异步执行代码块。
  • DispatchAsyncAfter - 在指定的 DispatchTime 上异步执行代码块,在给定的 DispatchQueue 上。
  • DispatchAsyncBarrier - 在给定的 DispatchQueue 上异步执行,并阻塞。
  • DispatchSync - 在给定的 DispatchQueue 上同步执行代码块。
  • DispatchSyncBarrier - 在给定的 DispatchQueue 上同步执行并阻塞。
  • Operation - 在给定的 OperationQueue 上执行代码块。
  • Block - 从闭包中执行代码。
  • 默认 - 在当前线程上执行代码,或者在代码块在线程中的当前位置依赖于全局 DispatchQueue 上。

将代码分配给特定的队列就像这样一样简单。

let queue = DispatchQueue.global()
Threader.DispatchAsync(queue).execute {
    /* Important background-thread code */
}

甚至可以进一步简化

Threader.DispatchAsync(.global()).execute {
    /* Important background-thread code */
}

DispatchQueue

在 Threader 的早期版本中,DispatchQueue 是围绕 C 语言 GCD 调用的小型包装器。然而,从 Swift 3 开始,Apple 决定提供他们自己的解决方案。不出所料,他们将包装器命名为 DispatchQueue。从现在开始,Threader 将使用 Apple 的原生实现 DispatchQueue 来进行所有与 GCD 相关的调用。