我正在尝试运行四种方法,但在每次运行方法之间,我希望程序等待一秒钟。这是代码,我真的不知道如何去做,谢谢你提前!
private void go_Click(object sender, EventArgs e)
{
{
while (GlobalVar.Direction == "down")
{ movedown();}
while (GlobalVar.Direction == "up")
{moveup();}
while (GlobalVar.Direction == "right")
{moveright();}
while (GlobalVar.Direction == "left")
{moveleft();}
}
}
答案 0 :(得分:5)
制作方法async
并使用await Task.Delay(1000)
像这样:
private async void go_Click(object sender, EventArgs e)
{
{
while (GlobalVar.Direction == "down")
{
await Task.Delay(1000);
movedown();
}
...
}
}
答案 1 :(得分:0)
要引入延迟一秒,请使用以下调用:
System.Threading.Thread.Sleep(1000);
“1000”表示1000毫秒或1秒。
答案 2 :(得分:0)
如果您不想(或不能)使用async
,您可以将您的方法添加到“脚本”,并让计时器一步一步地完成。即使用Queue代码看起来类似于以下(未经测试的)代码:
var script = new Queue<Action>();
script.Enqueue( movedown);
script.Enqueue( moveup);
var timer = new Timer(1000);
timer.Elapsed += (s,e)=>
{
if (script.Count > 0)
{
script.Dequeue()();
}
else
{
timer.Enabled = false;
}
};
timer.Enabled = true;