仍然是一個可可新秀,可可空循環衰竭
我有這個循環中,我的應用程序的後臺線程執行:
while (preProcessed == FALSE){}
這豬線程的一兩秒鐘,而主線程任務完成(涉及webview - 因此需要主線程)。
它工作完美,該應用程序已提交給蘋果,都很好。
現在,突然 - 它已停止工作。循環要麼永遠不會退出,要麼永遠不會開始,基本上應用程序只是靜靜地停留在這一點上。
即使我添加任意的動作,如
int idle_hands_etc = 0;
while (preProcessed == FALSE){ ++idle_hands_etc;}
沒有任何反應..
但是,如果我打印的東西輸出控制檯:
while (preProcessed == FALSE){ printf(".");}
它完美。
我的問題是,到底發生了什麼!其次,爲了使其行爲不同,發生了什麼變化,因爲它當然不是我的應用程序。
我懷疑編譯器已經認識到這些語句*不會做任何事*並優化它們。 – trojanfoe
你確定,你還沒有重新定義錯誤或預處理? –