0

我只想创建一个简单的暂停按钮,如果有必要,也许还可以创建另一个恢复按钮。我一直在环顾四周,我大多看到 Thread.Sleep(),这对我不起作用,因为我希望暂停保持暂停,直到用户需要。

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

我还看到了另一种创建第二种形式的解决方案,但是,这似乎对我不起作用。一旦打开第二个表单,整个程序就会关闭。

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

4

2 回答 2

1

最简单的事情是拥有一些其他线程可以访问的变量/属性。

Bool ShouldPause = false;

另一个线程应该在它的游戏循环中有类似的东西:

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

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

您不想通过一些类似“暂停”的功能暂停线程,因为它会阻止他在屏幕上绘图并且看起来好像它没有响应。

于 2013-04-05T22:20:33.430 回答
0

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

于 2013-04-05T22:13:13.297 回答