gpt4 book ai didi

ios - CFRunloopRun() 和简单的无限循环之间的区别?

转载 作者:行者123 更新时间:2023-11-28 20:52:54 24 4
gpt4 key购买 nike

我在当前运行循环上安排了一个 HIDManager,它是 main 函数的运行循环。

当我添加以下行时

CFRunLoopRun();

所有的HID事件都会被捕获并输出到屏幕上,兼容Runloop模型

enter image description here

但是如果我添加一个

for(;;);

在主循环结束时,据我了解,我也可以保持这个runloop存在并且线程永远不会死。为什么我现在收不到任何 HID 事件并且屏幕上没有打印任何内容?

最佳答案

CFRunLoopRun() 的工作方式不同于简单的无限循环,因为它会暂停程序的执行并等待新事件的到来,这些事件可能是定时器触发、HID 事件等。当您调用 CFRunLoopRun(),您会注意到只要没有新事件到达,您的程序的 CPU 使用率就会下降到零。

通过在运行循环所在的线程内运行无限循环,您的程序会忙于运行该无限循环,而没有时间处理新事件。

关于ios - CFRunloopRun() 和简单的无限循环之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55875730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com