gpt4 book ai didi

swift - 在 Swift 中休眠或延迟 Timer 线程

转载 作者:行者123 更新时间:2023-11-30 12:36:59 25 4
gpt4 key购买 nike

我一直在尝试在自动重复计时器上创建一两秒的延迟。这就是我创建计时器的方式:

currentThread = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(Movement.updatePosition), userInfo: nil, repeats: true)

因此定时器不断运行方法updatePosition()。但是,我在该方法中有一个 if 语句,我希望将计时器延迟几秒钟:

if distance <= respawnDistance * 0.1 {
// Delay timer for 1 second
}

我想我可以做到这一点:

currentThread.invalidate()

然后创建另一个在 1 秒后运行的计时器,这会导致前一个计时器重新激活。但是,我认为如果有办法让当前的计时器休眠,效率会很低吗?

最佳答案

NSTimer 不太准确。其最大分辨率约为 50 - 100 毫秒。无论如何,您可以添加一个变量来控制计时器的触发:

var doNotUpdate = false

if distance <= respawnDistance * 0.1 {
doNotUpdate = true
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
doNotUpdate = false
}
}

func updatePosition() {
if doNotUpdate { return }

// update your position
}

关于swift - 在 Swift 中休眠或延迟 Timer 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42742608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com