如何解决无需停止计时器,请重新启动:它将导致迅速运行多个计时器
func startTimer() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
dispatchQueue.main.async {
appDelegate.TIMER = Timer.scheduledTimer(withTimeInterval: self.REPEAT_TIME,repeats: true,block: { timer in
self.sendData(programID: self.MAIN_THREAD)
do {
try ...
}
catch let error {
...
}
})
}
}
定时器停止功能:
func stopTimer() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
if (appDelegate.TIMER != nil) {
appDelegate.TIMER?.invalidate()
appDelegate.TIMER = nil
}
}
我想知道
解决方法
如果我不停止就调用此函数,是否有机会启动多个计时器实例?
是的,startTimer
将启动另一个计时器而不会停止前一个计时器,但是当您将其存储在属性TIMER
中时,您将失去对先前安排的计时器的引用,因此将无法停止它直到结束。
在这种情况下呢(这是否只停止了一个计时器并继续运行另一个计时器?) 启动计时器→重新启动→停止
是的,它将停止上一次启动的计时器,所有其他先前启动的计时器将持续self.REPEAT_TIME
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。