2012-09-24 73 views
2

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

+5

而不是睡眠,使用计时器。 –

回答

3

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

使用DispatcherTimer。 关注此link获取更多信息。

+0

谢谢你,帮助了很多 –

-2

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

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秒。你可以玩弄数字来寻找延迟的利基。