问题描述
|
我做了一些游戏作为控制台应用程序,现在我想将其移至Windows窗体。
在控制台模式下,我使用Thread.Sleep()函数来减慢游戏中的某些元素(它们从窗口的顶部移动到底部),但是当我在Windows Form应用程序中使用该功能时,它将使应用程序窗口繁忙。我必须按ALT + F4来关闭程序。
我该如何解决?有什么办法可以解决?
解决方法
您应该使用
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版本中,此行为可能会更改。它不会说是否已更改。
,使用Thread.Sleep()
来控制任何东西就像来自VB6的probably3ѭ一样-可能是一个非常糟糕的主意:)在不了解您的应用程序结构的情况下,如何使用Timer
来以您想要的速度移动东西呢?
如果您可以提供更多可能对您有帮助的细节...
同样,在Windows中,在WPF中比在WinForms中更容易执行graphcs,这再次取决于您的项目是什么:)