【发布时间】:2012-08-02 07:15:21
【问题描述】:
我知道这可能是一个“愚蠢”的问题,但有时,我只想循环直到条件为假,但我不喜欢保持循环为空。所以而不是:
Visible = true;
while(IsRunning)
{
}
Visible = false;
我通常更喜欢:
while(IsRunning)
{
Visible = true;
}
Visible = false;
但是,我有点担心Visible = true; 行到底发生了什么。即使它是冗余,运行时是否会继续执行该语句?这样做甚至可取吗?许多“代码增强”插件不喜欢空的while循环,我真的不明白为什么。
所以:
空的while循环有什么问题吗?
如上所示的循环是否会对性能产生影响?
谢谢!
【问题讨论】:
-
称为busy-wait循环,通常用于等待某个条件变为真假后再继续执行程序
-
我不明白你为什么要这么做。我假设 IsRunning 将由另一个线程设置......那么你为什么不干脆分离另一个线程并加入()呢?这更清晰,块也一样。
-
一些早期的计算机设计有一个专用的处理器指令来处理这样的代码:HCF。保持并着火。
-
检查条件的空循环就像一个孩子不断问“我们到了吗?我们到了吗?我们到了吗?”在一次汽车旅行中。您希望您的程序和孩子直接进入睡眠状态,直到条件变为真。
标签: c# performance loops while-loop