C# 在c语言中设置方法之间的延迟#
我尝试运行四个方法,但每次运行一个方法之间,我希望程序等待一秒钟。这是代码,我真的不知道该怎么做,提前谢谢C# 在c语言中设置方法之间的延迟#,c#,delay,C#,Delay,我尝试运行四个方法,但每次运行一个方法之间,我希望程序等待一秒钟。这是代码,我真的不知道该怎么做,提前谢谢 private void go_Click(object sender, EventArgs e) { { while (GlobalVar.Direction == "down") { movedown();} while (GlobalVar.Direction == "up") {moveup();}
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();}
}
}
使您的方法
异步
并使用等待任务。延迟(1000)
像这样:
private async void go_Click(object sender, EventArgs e)
{
{
while (GlobalVar.Direction == "down")
{
await Task.Delay(1000);
movedown();
}
...
}
}
使您的方法
异步
并使用等待任务。延迟(1000)
像这样:
private async void go_Click(object sender, EventArgs e)
{
{
while (GlobalVar.Direction == "down")
{
await Task.Delay(1000);
movedown();
}
...
}
}
要引入1秒的延迟,请使用以下调用:
System.Threading.Thread.Sleep(1000);
“1000”表示1000毫秒或1秒。要引入1秒的延迟,请使用以下调用:
System.Threading.Thread.Sleep(1000);
“1000”表示1000毫秒或1秒。如果您不想(或不能)使用async
,您可以将您的方法添加到“脚本”中,并让计时器一次拾取一个步骤。也就是说,使用代码看起来类似于以下(未测试)代码:
var脚本=新队列();
script.Enqueue(movedown);
script.Enqueue(moveup);
var定时器=新定时器(1000);
计时器运行时间+=(s,e)=>
{
如果(script.Count>0)
{
script.Dequeue();
}
其他的
{
timer.Enabled=false;
}
};
timer.Enabled=true;
如果您不想(或不能)使用async
,您可以将您的方法添加到“脚本”中,并让计时器一次执行一个步骤。也就是说,使用代码看起来类似于以下(未测试)代码:
var脚本=新队列();
script.Enqueue(movedown);
script.Enqueue(moveup);
var定时器=新定时器(1000);
计时器运行时间+=(s,e)=>
{
如果(script.Count>0)
{
script.Dequeue();
}
其他的
{
timer.Enabled=false;
}
};
timer.Enabled=true;
整个应用程序应该在延迟期间挂起还是什么?整个应用程序应该在延迟期间挂起还是什么?+1需要.Net 4.5,但对于任何新项目都可以。这非常有效。谢谢,你能解释一下什么是“异步”吗?@LucasHolmes你可以阅读文档:@LucasHolmes,基本上,您的方法是异步运行的,因此您的窗口不会冻结。使用wait,它不会转到下一行,等待一秒钟(1000毫秒),然后调用您的movedown方法+1需要.Net 4.5,但对于任何新项目都可以。这非常有效,谢谢,你能解释一下什么是“异步”吗?@LucasHolmes你可以阅读文档:@LucasHolmes,基本上你的方法是异步运行的,因此你的窗口不会冻结。使用wait,它不会转到下一行,等待一秒钟(1000毫秒),然后调用你的movedown方法