看板 C_and_CPP 關於我們 聯絡資訊
個位大大好,新手首PO 程式碼大概長這樣 int filecount; //從預先建立好的filelist.xls抓出來 int i; for(i=0; i<filecount; i++) { A(); //開啟檔案並show在程式主視窗上 B(); //對已開啟的檔案做運算 C(); //將B()的運算結果截圖存檔成 i_result.jpg } 但是在執行時,若電腦剛好比較忙錄,可能會在跑到一半時就卡住了 主畫面就一直停在第n個檔案,可是程式還是繼續在執行… 等到終於不再顯示"沒有回應"的時候發現 從第n個檔案開始,後面雖然檔名都有好好命名,但全部都是n的運算結果截圖 囧 請問有沒有辦法在確認A()跟B()都有正確執行完畢,才繼續C()的方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.70.182 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1582795481.A.87B.html
BSpowerx: 讓A()跟B()都有一個回傳值 02/27 18:03
joe820730: 不知道你是用什麼環境寫GUI,但我的習慣是用一個執行 02/27 20:19
joe820730: 緒跑運算,算完再觸發一個自定義的事件讓主畫面更新, 02/27 20:19
joe820730: 主畫面盡量避免大量運算 02/27 20:19
Schottky: 這問題顯然不是出在迴圈 XDDDD 02/27 22:05
wjp: 回樓上,我只是一時不知道該如何形容啦XD 02/27 23:03
wjp: 謝謝回覆的大大 我放假回老家了 等禮拜一碰到電腦再來看看 02/27 23:05
Romulus: 檢查回傳 讓A和B成功回傳true 失敗回傳false true才執行 02/27 23:33
Schottky: 其實我覺得和成功失敗無關,感覺只是個單純的 bug 02/28 00:47
ko27tye: 你畫面就hang住了 當然只能擷取到那個畫面阿 02/28 01:07
wjp: 結果在B()跟C()中間加個delay 1秒就不會卡住了 orz 03/02 17:33