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