我有一个简单的问答型程序,代码如下:
private void AskQuestion(Question q)
{
questionbox.Text = q.GetQuestion();
answering = true;
while (answering == true)
{
}
if (q.GetQuestion() == answerbox.Text)
{
MessageBox.Show("well done");
}
else
{
MessageBox.Show("nope");
}
}
回答只是我拥有的一个开关,因此在用户输入答案并单击按钮之前,程序不会测试答案。
我有一个供用户单击的按钮,它将其切换为 false:
private void Answer_Click(object sender, EventArgs e)
{
answering = false;
}
这个想法是当用户回答问题时,while循环暂停程序并退出,但它只是冻结整个事情。
我尝试通过线程睡眠来减慢它的速度,然后我找了一个计时器来观察变量,在一个新线程上尝试了它,但是线程不会相互通信,所以我处于这种愚蠢的情况,我被卡住了.
请帮助程序员,并在这里为我提出一个策略?