我目前正在建设一个Windows窗体应用程序,我已经拿到了下一个问题, 因为语法即时通讯使用不会让我做,我不能声明一个变量全球性的,另外,我需要声明的变量它自己的方法,最后,它必须循环,以便它能够计数。这是我到目前为止:我该如何解决这个循环?
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int i;
m_bIsTimerOn = true;
while (m_bIsTimerOn)
{
i++;
label1->Text = (i.ToString());
}
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
m_bIsTimerOn = false;
timer1->Enabled = false;
}
m_bIsTimerOn是一个全局布尔值。正如你可能在这里看到的,我的问题是如果我按下按钮1,程序就停留在while循环中。我想知道,当你按下button2 while循环时,我也想知道这是否可能。如果你可以在C++中回应,那也可以。
预先感谢您。
我不能用我喜欢这样,因为我使用的语法不会允许我使用它这样。我提供的代码只是一个示例。我需要用与它相同的方法制作。 – Thealon
@Thealon我添加了最后一段(和第二个解决方案),但让我说“我正在使用的语法”是非常好奇的句子。 UI是单线程的,然后保持紧密的循环运行,而用户仍然可以调用其他方法是一个坏主意。也许你最好发布一些更类似于你真正使用的代码:设计上的一些改变会使它更好(读作:如果你的循环执行的东西多于它应该移动到**单独的线程* *正确同步)。 –
我添加的语法,我认为它不会帮你 – Thealon