DispatchTimer
是一个基于 GCD 的定时器,其 API 与 Timer
(原名 NSTimer
) 类似。 DispatchTimer
相比 Timer
的最大优势在于它不需要 RunLoop
就能触发,这意味着你可以在后台线程中使用 DispatchTimer
而没有任何问题。 DispatchTimer
的缺点是你需要保留对它的引用,否则它不会触发。
要使用 Swift Package Manager 集成 DispatchTimer
,请将依赖项添加到你的 Package.swift
文件中
dependencies: [
.package(url: "https://github.com/shareup/dispatch-timer.git", from: "3.0.0"),
],
let oneoff = DispatchTimer(.milliseconds(50), block: { print("fired") })
let repeating = DispatchTimer(
.milliseconds(50),
repeat: true,
block: { print("fired") }
)
let fireAt = DispatchTimer(
fireAt: DispatchTime.now() + .milliseconds(50),
block: { print("fired") }
)
DispatchTimer
的许可是标准的 MIT 许可。你可以在 LICENSE
文件中找到它。