2016-02-03 79 views
2

我的問題如下:如何創建非凍結無限循環?

如何在C++中創建無限循環,它不凍結窗口,保持響應並允許程序隨時關閉?

例子:

#include <Windows.h> 
int main() 
{ 
    while(1) 
    { 
     FlashPrettyGraphics(); 
     Sleep(10); 
    } 
} 

這個程序,因爲它是現在,將爲約工作。十幾秒鐘後,它將變得沒有響應和崩潰。在執行過程中,窗口將無法移動。

我該如何解決這個問題?

+0

搜索**線程** – Guiroux

+2

搜索**事件處理**。您的窗口凍結並可執行崩潰,因爲您不處理窗口收到的事件。不管你的循環是無限的還是不是,處理事件的唯一要求。 – HolyBlackCat

回答

4

這通常用多線程來完成。您創建一個與用戶交互的線程,然後創建另一個具有處理的無限循環的線程。

+2

權限如何OP錯過了事件處理,這就是爲什麼他的窗口凍結和可執行崩潰(因爲事件隊列溢出)。他所要求的內容可以通過一個或多個線程輕鬆實現,唯一的要求是快速處理事件。現在** OP應該添加適當的事件處理,否則一個新的線程將不會改變任何**。 – HolyBlackCat