簡體   English   中英

突破無限循環生成窗口

[英]Breaking out from generating windows in infinite loop

在我的程序中,我做了一個明顯的錯字

for(int i = 0; i<mNoOfCores; i+3)

代替

for(int i = 0; i<mNoOfCores; i++)

不幸的是,在循環中我正在生成QT5窗口。 因此,我的Ubuntu系統被絕對拒絕,只能在重啟電源后才能重新啟動。 (鼠標反應靈敏,鍵盤也可能如此。)有沒有更好的方法? 或者,以這種方式我可以拒絕應用程序中的操作系統?

編譯器無法提前通知您有關無限循環的信息。 這在很多地方都在這里這里這里討論

您可以做的是使用簡單的“雙重檢查”來防止自己掛起操作系統。 例:

int totalNoWindowsCreated = 0; // keep track of windows created OK
for(int i = 0; i<mNoOfCores; i+3)
{
  // Create window  
  totalNoWindowsCreated++; // If created OK
  assert(("Bug !", totalNoWindowsCreated <= mNoOfCores)); // Check
}

更新:當然,您可以在斷言條件下犯錯誤,在這種情況下,請稍事休息並喝咖啡:)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM