作者ganganx (埃阿)
看板Visual_Basic
標題[.NET] 耗時很長的迴圈可以隨時中斷嗎
時間Mon Apr 8 16:16:09 2013
請問 比如一個迴圈耗時30秒
for i as int32 = 0 to 10
sleep (30000)
Application.DoEvents()
If stop = False Then
stop = True
Exit for
End If
next
類似這樣的時候
就算我按了BUTTON把stop變成false
也要等30秒後迴圈才會停止
如果想要隨時停止 有什麼好方法呢
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.35.250.157
1F:→ MOONRAKER:你就讓他連續睡30次每次一秒不就得了 |D 04/08 17:08
2F:→ Abbee:你寫了sleep不就是為了要等嗎? 04/08 19:29
3F:→ ganganx:30秒是做很多事的大約時間 目前改用1F建議 把程式再切成 04/08 21:02
4F:→ ganganx:很多小段 每段加上DoEvents 謝謝 04/08 21:03
5F:→ Abbee:doevents不建議常用~另開thread就可以下指令終止了 04/08 21:24
6F:→ ganganx:請問是指用B執行緒去終止A執行緒(迴圈)的意思嗎 04/08 21:37
7F:→ s3748679:BackgroundWorker 參考看看吧~ 04/08 22:20
8F:→ ganganx:好的 多謝樓上各位板友指點 有點頭緒了 04/08 22:52
9F:推 chinoyan:放到另一個線程(執行緒),應該是最佳做法 04/09 07:40