2011-05-26 37 views
1

我做了一些遊戲作爲控制檯應用程序,現在我想將它移動到Windows窗體。 在控制檯模式下,我使用Thread.Sleep()函數來減緩遊戲中的某些元素(它們從窗口的頂部移動到底部),但是當我在Windows窗體應用程序中使用該函數時,會使應用程序窗口忙。然後我必須通過ALT + F4關閉程序。 我該如何解決這個問題,或者有什麼方法可以解決這個問題?在Windows窗體應用程序中休息片刻

+1

您需要使用'Timer'控件。 – SLaks 2011-05-26 14:52:50

回答

0

你應該使用System.Windows.Forms.Timer

System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer(); 

myTimer.Tick += new EventHandler(TimerEventProcessor); 
myTimer.Interval = 5000;//This is in milli seconds 
myTimer.Start(); 


private void TimerEventProcessor(Object myObject, 
              EventArgs myEventArgs) { 
{ 
    //Your code 
} 

請注意,你不應該使用System.Timers.Timer

來自MSDN:在.NET Framework 2.0及更早版本中,Timer組件捕獲並抑制Elapsed事件的事件處理程序拋出的所有異常。此行爲在未來的.NET Framework版本中可能會發生變化。它並沒有說它是否已經改變了。

+0

答案在這裏更清楚http://stackoverflow.com/questions/6207262/web-application-to-know-database-update/6212233#6212233 – Pankaj 2011-06-04 09:07:11

0

使用Thread.Sleep()控制任何東西就像是DoEvents從VB6 - 可能是一個非常糟糕的主意:)不知道很多關於你的應用程序的結構,如何使用Timer,這樣就可以在正是你想要的速度移動的東西?

如果你能提供一些更多的細節,可以幫助...

而且,在Windows做graphcs在WPF比的WinForms容易得多,這也取決於你的項目是什麼:)