2013-04-05 114 views
0

我只是想創建一個簡單的暫停按鈕,並且如果有必要可能需要另一個按鈕。我一直在四處看,我主要看到Thread.Sleep(),這對我不起作用,因爲我想讓暫停保持暫停,直到用戶需要。遊戲c的暫停按鈕#

Thread.Suspend()不起作用,因爲它現在已經過時。

我也看到了創建第二個表單的另一個解決方案,但是,這似乎並沒有爲我工作。一旦第二張表格打開,整個程序就會關閉。

我不確定這是否有所作爲,但我的程序當前使用兩個線程(主線程運行form1與另一個線程)。理想情況下,一切都需要暫停。

+0

只是好奇......你的「另一個線程」是做什麼的?它可能運行一種 'while while(true){// do something}'--loop? – 2013-04-05 22:09:55

+0

是的,我的其他線程正在運行一段時間(true)循環。 – krikara 2013-04-05 22:12:48

+1

你爲什麼不把它改成'while(!paused)'? – 2013-04-05 22:18:34

回答

1

最簡單的事情是有一些其他線程可以訪問的變量/屬性。

Bool ShouldPause = false; 

另一個線程應該有它的遊戲循環類似的東西:

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

然後當ShouldPause變量是假的遊戲才能繼續進行。 我做了幾次,它完美的工作。

你不想通過一些「暫停」類似的函數暫停線程,因爲它會阻止他在屏幕上繪製並且看起來沒有響應。