运行循环的真正意义和好处是什么?

4 iphone multithreading

在阅读关于多线程的苹果文档时,他们谈论了很多关于Run Loops的内容.创建Run Loop有什么意义?这是多次重用用户线程吗?在哪个示例性情况下,Run Loop是一个好主意?

这个Run Loop如何与一个线程相关?让我们以iPhone OS应用程序的主要运行循环为例.当用户触摸屏幕时,它会触发事件.运行循环是否重用主线程以便使用某些代码处理事件?或者每次事件发生时,运行循环是否会创建一个新线程?

iKe*_*dac 8

如果您希望应用程序在基于事件的现代UI上工作,则运行循环是一个好主意.即,自DOS以来的任何事情.

从Cocoa到.NET到REALbasic的所有桌面操作系统运行时都可以免费为您提供主要的运行循环.运行循环四处转动,检查事件并将它们传送到需要的位置.没有它,您将无法获得鼠标,键盘或其他系统事件.当主运行循环终止时,您的应用程序也将自动终止.

通常,您不需要对主运行循环执行任何操作,也不需要创建新的循环.在Cocoa中显示模态面板有时会在内部为面板创建一个运行循环,具体取决于行为.这会停止主运行循环,因此只有面板才能获取事件.

iPhone或Cocoa应用程序中的主线程运行主运行循环,所有事件都在主线程上传递.您创建的任何额外线程都没有自己的运行循环,除非您自己创建一个.