在程序C#中添加延迟

时间:2012-09-24 08:53:56

标签: c# windows-phone-7 delay

在我的WP7应用中,播放器绘制一条线,然后CPU绘制一条线。我希望CPU在处理和绘制线之前等待5秒。在玩家完成绘图后立即使用此System.Threading.Thread.Sleep(5000);。但是玩家的线路没有完全绘制,系统进入睡眠状态,5秒后两条线都被绘制出来。如何完成玩家的行,然后开始延迟?

3 个答案:

答案 0 :(得分:3)

System.Threading.Thread.Sleep(5000)将冻结您的应用和您的用户界面。您的应用肯定不会通过认证。

使用DispatcherTimer。 请按照此link获取更多信息。

答案 1 :(得分:0)

您可以使用DispatcherTimer在玩家回合后立即添加一些延迟。

这通常是你可以做的:

类变量:

DispatcherTimer delayTimer = new DispatcherTimer();
int timesTicked = 0;

在构造函数中:

delayTimer.Interval = new TimeSpan(0, 0, 0, 0, 5000);
delayTimer.Tick += new EventHandler(timer_Tick);

处理程序:

void delayTimer_Tick(object sender, EventArgs e)    
{
    timesTicked++;
    if(timesTicked == 2)
    {
      timesTicked = 0;
      delayTimer.Stop();
      RunCPU();
    }
}

以上跟踪计时器勾选的次数,在两次滴答之后,它调用RunCPU方法。请注意,以上将是10秒。你可以玩这些数字来找到延迟的利基。

答案 2 :(得分:-2)

尝试使用Application.DoEvents();睡觉前。