gpt4 book ai didi

c++ - 未延迟的无限 while 循环是不好的做法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:18:33 24 4
gpt4 key购买 nike

<分区>

简而言之: 与因延迟而变慢的类似循环相比,未延迟的 while 循环是否消耗大量处理能力?

不那么短:

我经常遇到这个问题。我正在编写程序的核心部分(微 Controller 单元或计算机应用程序),它包含一个半无限的 while 循环以保持事件状态并查找事件。

我将举这个例子:我有一个使用 SDL 窗口和控制台的小应用程序。在一个 while 循环中,我想监听这个 SDL 窗口的事件,但是我也想根据命令行输入通过一个全局变量来打破这个循环。可能的解决方案(伪代码):

// Global
bool running = true;

// ...

while (running)
{
if (getEvent() == quit)
{
running = false;
}
}

shutdown();

核心 while 循环将从监听的事件或外部事件中退出。 但是,这个循环是连续运行的,甚至可能每秒运行 1000 次。这有点矫枉过正,我不需要那个响应时间。因此我经常添加一个延迟语句:

while (running)
{
if (getEvent() == quit)
{
running = false;
}
delay(50); // Wait 50 milliseconds
}

这将刷新率限制为每秒 20 次,足够了。

那么。两者之间真的有区别吗?重要吗?它在微 Controller 单元上是否更重要(处理能力非常有限(但除了程序之外没有其他需要运行...))?

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