if语句中的所有项都未触发
本文关键字:语句 if | 更新日期: 2023-09-27 18:12:35
我想弄清楚为什么只有if语句中的第一行是唯一被执行的行。
bool messageDisplayed = false;
private void timer1_Tick(object sender, EventArgs e)
{
var position = axVLCPlugin21.input.Position;
label1.Text = string.Format("{0}% completed", position * 100);
if (position > 0.8 && messageDisplayed == false)
{
MessageBox.Show("80 has been passed");
messageDisplayed = true;
}
}
消息框不断出现,导致我认为messageDisplayed = true
从未被设置,所以我设置了一个断点来检查。
果然,它进入if语句,显示消息框,然后重新启动事件-没有去messageDisplayed = true;
有没有人能看出我哪里出了问题?
MessageBox.Show()
"暂停"执行代码。关闭MessageBox
触发messageDisplayed = true;
if (position > 0.8 && !messageDisplayed)
{
messageDisplayed = true;
MessageBox.Show("80 has been passed");
}
MessageBox导致运行暂停,这允许您再次触发事件,甚至在bool变量变为真之前。尝试将bool值放在messagebox