DispatchTimer
is a GCD-powered timer with a similar API to Timer
(née NSTimer
). DispatchTimer
's big advantage over Timer
is it doesn't need a RunLoop
to fire, which means you can use DispatchTimer
on background threads without any problems. The disadvantage of DispatchTimer
is you need to retain a reference to it or it won't fire.
To use DispatchTimer
with the Swift Package Manager, add a dependency to your Package.swift
file:
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") }
)
The license for DispatchTimer
is the standard MIT license. You can find it in the LICENSE
file.