[问题] 请教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