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