ios - 在iOS和Cocoa Touch上,touchesBegan和timerFired是否存在竞争条件?

标签 ios cocoa-touch

假设,如果使用较早的设置使用timerFiredNSTimer调用了CADisplayLink(计时器处理程序),并且当用户触摸屏幕时也调用了touchesBegan,那么两个处理程序(计时器处理程序和触摸事件处理程序)?

最佳答案

如果计时器处理程序和touchesBegan都在主线程上运行,则它们中的代码无法混合(它们在同一线程上)。这是正常情况。

可能存在竞争条件,因为计时器可能在touchesBegan之前或之后运行,但是如果它们在同一线程上,则它们不能同时运行。仅当您将计时器附加到另一个线程的运行循环时,它们才会位于不同的线程上(这是非常不寻常的事情)。

关于ios - 在iOS和Cocoa Touch上,touchesBegan和timerFired是否存在竞争条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10332758/

相关文章:

ios - 如何使用 MKRoute 创建特定路径?

ios - 让 UITableView 滚动时键盘消失

iphone - 将 Static-TableView-Cells 添加到 UIViewcontroller 的最佳方法?

iphone - iphone 与 mac 通讯的最佳方式?

ios - 创建具有最大大小并在添加更多项目时删除项目的 NSMutableArray 的最佳途径是什么?

ios - Alamofire HTTP 请求失败

ios - 为什么我的 UITableViewCell 附件复选标记不会显示?

objective-c - IOS:NSOrderedDescending 和 NSOrderedAscending 的问题

iOS:如何使用 slider 设置自定义背景颜色?

iphone - iOS获取视频帧率