tek*_*ek3 3 objective-c nsrunloop ios
我一直在阅读RunLoopsApple文档中的几天以及来自Google搜索的内容.我在RunLoops很大程度上理解了这个概念,但我仍然没有回答一些基本问题RunLoops.
Runloop运作?是否类似while循环在某个系统级别运行?请为我提供一些指示..
关于RunLoop(在其他平台上不同地命名为Window Handler,主循环,事件循环)的全部观点是它促进了一个事件驱动的体系结构,其中应用程序仅在有事情要做时运行 - 例如,响应用户交互.这与民意调查相反.
该体系结构的基础是某种消息队列,线程可以阻塞,直到可用于处理的消息.在MacOSX和iOS系统上,队列是Mach内核 RPC port.在Windows上,它是内核IPC队列,X-windows系统,unix域或网络套接字.
事件由其他系统组件插入队列 - 例如Window Manager和其他应用程序.应用程序通常从其他线程发送消息以便在同一线程中执行所有UI处理.
运行循环本身驻留在应用程序空间中,看起来像这样:
while (!stop)
{
message = WaitForNextMessage();
DispatchMessage(message);
}
Run Code Online (Sandbox Code Playgroud)
通常,您使用的任何UI框架都提供了为特定类型的事件注册事件处理程序的机制.
| 归档时间: |
|
| 查看次数: |
410 次 |
| 最近记录: |