我只想创建一个简单的暂停按钮,如果有必要,也许还可以创建另一个恢复按钮。我一直在环顾四周,我大多看到 Thread.Sleep(),这对我不起作用,因为我希望暂停保持暂停,直到用户需要。
Thread.Suspend() 不起作用,因为它现在已经过时了。
我还看到了另一种创建第二种形式的解决方案,但是,这似乎对我不起作用。一旦打开第二个表单,整个程序就会关闭。
我不确定这是否有区别,但我的程序当前使用两个线程(主线程运行 form1 和另一个线程)。理想情况下,一切都需要暂停。
最简单的事情是拥有一些其他线程可以访问的变量/属性。
Bool ShouldPause = false;
另一个线程应该在它的游戏循环中有类似的东西:
while(true)
{
if(!ShouldPause)
{
UpdateGame();
}
Draw();
}
只有当 ShouldPause 变量为假时,游戏才会继续。我做了几次,效果很好。
您不想通过一些类似“暂停”的功能暂停线程,因为它会阻止他在屏幕上绘图并且看起来好像它没有响应。
您可以使用线程信号技术。一个好的开始是看一下ManualResetEvent 类