[問題] 請教for迴圈問題

作者: wjp (Love Mi)   2020-02-27 17:24:39
個位大大好,新手首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()的方法
作者: BSpowerx (B.S)   2020-02-27 18:03:00
讓A()跟B()都有一個回傳值
作者: joe820730 (Let it go)   2020-02-27 20:19:00
不知道你是用什麼環境寫GUI,但我的習慣是用一個執行緒跑運算,算完再觸發一個自定義的事件讓主畫面更新,主畫面盡量避免大量運算
作者: Schottky (順風相送)   2020-02-27 22:05:00
這問題顯然不是出在迴圈 XDDDD
作者: wjp (Love Mi)   2020-02-27 23:03:00
回樓上,我只是一時不知道該如何形容啦XD謝謝回覆的大大 我放假回老家了 等禮拜一碰到電腦再來看看
作者: Romulus (Säubern Mode)   2020-02-27 23:33:00
檢查回傳 讓A和B成功回傳true 失敗回傳false true才執行
作者: Schottky (順風相送)   2020-02-28 00:47:00
其實我覺得和成功失敗無關,感覺只是個單純的 bug
作者: ko27tye (好滋好滋)   2020-02-28 01:07:00
你畫面就hang住了 當然只能擷取到那個畫面阿
作者: wjp (Love Mi)   2020-03-02 17:33:00
結果在B()跟C()中間加個delay 1秒就不會卡住了 orz

Links booklink

Contact Us: admin [ a t ] ucptt.com