暂停游戏的按钮c#

时间:2013-04-05 22:02:06

标签: c# winforms

我只是想创建一个简单的暂停按钮,如果需要,可能还需要另一个按钮。我一直在环顾四周,我主要看到Thread.Sleep(),这对我不起作用,因为我希望暂停在用户需要之前保持暂停状态。

Thread.Suspend()不起作用,因为现在已经过时了。

我还看到了创建第二种形式的另一种解决方案,但这对我来说似乎并不适用。打开第二个表单后,整个程序将关闭。

我不确定这是否有所不同,但我的程序目前使用两个线程(主线程运行form1和另一个线程)。理想情况下,一切都需要暂停。

2 个答案:

答案 0 :(得分:1)

最简单的做法是拥有一个其他线程可以访问的变量/属性。

Bool ShouldPause = false;

另一个主题应该在游戏循环中有这样的东西:

while(true)
{
  if(!ShouldPause)
  {
    UpdateGame();
  }
  Draw();
}

然后只有在ShouldPause变量为false时才会继续游戏。 我做了好几次,效果很好。

您不希望通过某些“暂停”功能暂停线程,因为它会阻止他在屏幕上绘图并且看起来没有响应。

答案 1 :(得分:0)

您可以使用线程信号技术。 一个好的开始是看看ManualResetEvent Class