假设,如果使用较早的设置使用timerFired
或NSTimer
调用了CADisplayLink
(计时器处理程序),并且当用户触摸屏幕时也调用了touchesBegan
,那么两个处理程序(计时器处理程序和触摸事件处理程序)?
最佳答案
如果计时器处理程序和touchesBegan
都在主线程上运行,则它们中的代码无法混合(它们在同一线程上)。这是正常情况。
可能存在竞争条件,因为计时器可能在touchesBegan
之前或之后运行,但是如果它们在同一线程上,则它们不能同时运行。仅当您将计时器附加到另一个线程的运行循环时,它们才会位于不同的线程上(这是非常不寻常的事情)。
关于ios - 在iOS和Cocoa Touch上,touchesBegan和timerFired是否存在竞争条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10332758/