[問題] 請問Win32::GUI while迴圈的中斷

看板Perl作者 (蜥蜴)時間17年前 (2007/10/06 19:41), 編輯推噓8(806)
留言14則, 2人參與, 最新討論串1/1
請問Win32::GUI中,使用while(1)迴圈時,要怎麼中斷他呢? 我寫了一個按鈕停止,可是執行while(1)迴圈時,根本沒辦法按按鈕 整個GUI感覺就像當掉一樣停住了 以前寫vb有個指令放在while迴圈內,他會檢查按鈕的動作 請問Win32::GUI裡面有類似的功能嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.173.88

10/06 21:53, , 1F
Sorry 自己解決了 use threads;
10/06 21:53, 1F

10/06 21:59, , 2F
while 迴圈裡面加入 Win32::GUI::DoEvents(); 即可
10/06 21:59, 2F

10/06 22:00, , 3F
不需要使用到 threads 啦:P
10/06 22:00, 3F

10/06 22:33, , 4F
剛剛試了DoEvents,視窗可以拉動,可是按鈕還是不給按=.=
10/06 22:33, 4F

10/06 22:36, , 5F
用threads也會有thread關不掉的情形=.=
10/06 22:36, 5F

10/06 22:37, , 6F
想關掉程式還真困難
10/06 22:37, 6F

10/06 22:38, , 7F
應該是可以才對 你要狂按~~要不然就是把 while 迴圈
10/06 22:38, 7F

10/06 22:38, , 8F
改用Timer 來寫吧
10/06 22:38, 8F

10/06 22:52, , 9F
嗚~莉洛寫的就會動,我在來研究一下=.=
10/06 22:52, 9F

10/06 23:02, , 10F
我知道了,我的程式被socket的can_read給block住了
10/06 23:02, 10F

10/06 23:10, , 11F
噗噗...你可能要用 alarm 設定一下 timeout
10/06 23:10, 11F

10/08 10:22, , 12F
最後還是用thread+socket控制關閉thread完成
10/08 10:22, 12F

10/10 01:44, , 13F
嗯嗯~ 其實用 Non Blocking 的方式也可以解決 XD
10/10 01:44, 13F

10/10 01:45, , 14F
不過既然搞定就好啦 :)
10/10 01:45, 14F
文章代碼(AID): #171tHh0b (Perl)
文章代碼(AID): #171tHh0b (Perl)