作者imce (蜥蜴)
看板perl
標題[問題] 請問Win32::GUI while迴圈的中斷
時間Sat Oct 6 19:41:30 2007
請問Win32::GUI中,使用while(1)迴圈時,要怎麼中斷他呢?
我寫了一個按鈕停止,可是執行while(1)迴圈時,根本沒辦法按按鈕
整個GUI感覺就像當掉一樣停住了
以前寫vb有個指令放在while迴圈內,他會檢查按鈕的動作
請問Win32::GUI裡面有類似的功能嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.173.88
1F:→ imce:Sorry 自己解決了 use threads; 10/06 21:53
2F:推 LiloHuang:while 迴圈裡面加入 Win32::GUI::DoEvents(); 即可 10/06 21:59
3F:→ LiloHuang:不需要使用到 threads 啦:P 10/06 22:00
4F:推 imce:剛剛試了DoEvents,視窗可以拉動,可是按鈕還是不給按=.= 10/06 22:33
5F:→ imce:用threads也會有thread關不掉的情形=.= 10/06 22:36
6F:→ imce:想關掉程式還真困難 10/06 22:37
7F:推 LiloHuang:應該是可以才對 你要狂按~~要不然就是把 while 迴圈 10/06 22:38
8F:→ LiloHuang:改用Timer 來寫吧 10/06 22:38
9F:推 imce:嗚~莉洛寫的就會動,我在來研究一下=.= 10/06 22:52
10F:推 imce:我知道了,我的程式被socket的can_read給block住了 10/06 23:02
11F:推 LiloHuang:噗噗...你可能要用 alarm 設定一下 timeout 10/06 23:10
12F:推 imce:最後還是用thread+socket控制關閉thread完成 10/08 10:22
13F:推 LiloHuang:嗯嗯~ 其實用 Non Blocking 的方式也可以解決 XD 10/10 01:44
14F:→ LiloHuang:不過既然搞定就好啦 :) 10/10 01:45