好奇。当用户触摸iPhone应用程序中的屏幕时,操作系统如何处理触摸事件?当前代码块(函数/方法)是否完成,然后处理触摸事件?或者OS是否会中断可能正在运行的代码以处理触摸事件?
谢谢!
Sunny
答案 0 :(得分:5)
触摸屏幕会导致操作系统为您的应用生成触摸事件。所有事件都在主线程(运行代码的同一线程)中处理,它实现为循环。操作系统不会中断您的代码来处理事件;所有事件都在事件循环的下一次传递中处理。
答案 1 :(得分:0)
如果当前函数/方法在主线程中运行,则在当前例程返回(运行循环)之前,不会调用任何触摸事件处理程序。如果当前函数/方法未在主UI线程中运行,则可以中断代码以运行触摸事件处理程序。
在当前设备上,触摸事件似乎被量化为60 Hz帧速率,大约每16毫秒,因此物理触摸可能不会作为事件发布,直到该时间可能已经过去,并且没有处理程序将是直到事件发布后才会调用。