2011-05-26 73 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容易得多,这也取决于你的项目是什么:)