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