2

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

4

3 回答 3

3

System.Threading.Thread.Sleep(5000) 将冻结您的应用程序和 UI。因此,您的应用程序肯定不会通过认证。

使用 DispatcherTimer。点击此链接了解更多信息。

于 2012-09-24T09:03:52.287 回答
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();
    }
}

上面记录了 Timer 计时的次数,在两次计时后,它调用 RunCPU 方法。请注意,以上将 10 秒。你可以玩弄这些数字来找到延迟的利基。

于 2012-09-24T10:08:52.160 回答
-2

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

于 2012-09-24T09:02:29.377 回答