【发布时间】:2017-05-13 18:18:20
【问题描述】:
在第三次或第四次观看 Futurama 开始结束后,我决定尝试编写“两个圣诞老人的故事”中的随机数倒计时生成器。当我第一次开始这个项目时,我只开始一次显示一个数字,在这一步中,程序似乎运行得很好。然后我开始尝试让我的显示与剧集中的显示匹配,每个数字之间有第二个延迟。在我添加代码来执行此操作后,我的程序不会显示任何数字,直到它达到零然后关闭程序。相反,当我第一次单击我的按钮时,它会在第一秒显示“标签”,然后将其切回“实验室”或“la”,字母的一半直到达到零。我不知道为什么会发生这种情况,并且希望能提供任何关于为什么会发生这种情况的意见。我的代码如下。
namespace FuturomaRandomNumberCountDown
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool keepRunning = true; //used for loop kickout
private void start_Click(object sender, EventArgs e)
{
while (keepRunning == true)
{
Random random = new Random((int)DateTime.Now.Ticks);
int randomNum = random.Next(0, 99);
display.Text = Convert.ToString(randomNum);/display number
Thread.Sleep(1000);//delay
if(randomNum==0)//check for zero
{ keepRunning = false; }//to kick out of the while loop
}
Application.Exit();
}
}
}
【问题讨论】:
-
把
Thread.Sleep(1000);改成await Task.Delay(1000); -
不回答您的问题,但您可以将 'while (keepRunning == true)' 更改为 'while (keepRunning)'
标签: c#