私は簡単な質問と回答のタイプのプログラムを持っており、次のようなコードが少しあります:
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 ループはプログラムを一時停止し、ユーザーが質問に答えると終了しますが、全体がフリーズするだけです。
スレッドをスリープさせて速度を落とそうとしましたが、変数を監視するタイマーに行き、新しいスレッドで試してみましたが、スレッドが互いに通信しないため、スタックしているこのばかげた状況に陥っています.
プログラマーを助けて、ここで私に戦略を提案してください。