对于完成布尔值设置为 true 后未停止的循环
For loop not stopping after finish bool set to true
抱歉,这可能是一个愚蠢的问题,但我观看了线程基础知识视频,并尝试制作一个非常基本的计时器。计时器工作,但即使 isFinished 布尔值为真,它也不会停止?任何人都知道修复程序,抱歉,如果这是一个愚蠢的问题和简单的解决方案。
static bool isFinished = false;
void DoWork()
{
using namespace std::literals::chrono_literals;
while (!isFinished)
{
for (int i = 0; ; i++)
{
std::cout << i << "s" << "n";
std::this_thread::sleep_for(0.90s);
}
}
}
int main()
{
std::thread worker(DoWork);
std::cin.get();
isFinished = true;
worker.join();
std::cout << "Timer finished";
std::cin.get();
}
内部 for 循环没有停止条件,也没有其他机制来中断/离开它。您可以在 for 循环正文中添加类似"if(isDone(break;"的内容,或者在 for(...( 本身中包含条件。
相关文章:
- 如何循环打印顶点结构
- 如何在C++中从两个单独的for循环中添加两个数组
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 对于完成布尔值设置为 true 后未停止的循环
- C++ if 语句将条件设置为 true 和循环中的 OR-ing 条件之间的行为差异
- 即使初始要求为 true,也不会输入 for 循环
- 初始化时 num 的哪个值会给这个嵌套循环一个"true"输出?
- 当 c++ 布尔函数返回 true 时无限循环
- 为什么我在图中的DFS循环检测总是返回true
- 了解 While(true) 循环
- 下次不会让我通过 while (true) 循环输入信息
- 如果 else 语句循环或重复,直到 true
- 而循环在为假时计算为 true C++
- 如何编写条件 for 循环(如果 true 循环通过 A,否则循环通过 B)
- 为什么这个 while 循环永远不会计算为 true
- 如何在布尔值(false和true)上编写“for”循环
- While循环为true false,不加增量
- 如果是字符或字符串返回false,但如果输入不能转换为整数则返回true.c++的while循环
- 我们是否可以创建一个类似scanf的函数,当所有参数都填充时返回true,否则返回false,而不循环遍历所有变量?
- 无限"true" while 循环