我有一個遊戲網格更新「步驟」(康威的生活遊戲,雖然這並不涉及我的問題,特別是)。我試圖創建一個自動運行模擬的播放按鈕,直到再次按下該按鈕暫停模擬。起初,我有這樣的事情:創建無限循環而不打破程序
public partial class MainWindow : Window
{
bool running = true;
public MainWindow()
{
InitializeComponent();
bool isProgramRunning = true;
while(isProgramRunning)
{
while(running)
ProcessGeneration();
}
}
}
我的按鈕,播放/暫停仿真具有以下click處理程序:
private void PlayClick_Handler(object sender, RoutedEventArgs e)
{
PlayButton.Content = ((string)PlayButton.Content == "Play") ? "Pause" : "Play";
running = (running) ? false : true;
}
我認爲,這將讓我的計劃只是不斷循環(isProgramRunning永不結束)反覆檢查「running」是true還是false,並且按下按鈕切換「running」將允許我循環/跳出循環。但是隻有while(isProgramRunning)部分殺死了程序(它甚至不會加載)。實際上,每次我嘗試使用while()時,程序都會停止響應。有沒有辦法解決這個問題?
一句忠告:你可以學到很多* *關於通過實施高斯帕的算法生命功能的編程;它允許您支持荒謬的大型主板和荒謬的快速計算 - 每秒鐘有數萬億個單元和數萬億次的主板 - 所有這些都使用完美的普通硬件。 –
您可以在UI線程上運行[後臺異步操作](http://stackoverflow.com/a/21713337/1768303),以避免阻塞WPF分派器循環。 – Noseratio