[.NET] 耗時很長的迴圈可以隨時中斷嗎

看板Visual_Basic作者 (埃阿)時間12年前 (2013/04/08 16:16), 編輯推噓1(108)
留言9則, 5人參與, 最新討論串1/1
請問 比如一個迴圈耗時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

04/08 17:08, , 1F
你就讓他連續睡30次每次一秒不就得了 |D
04/08 17:08, 1F

04/08 19:29, , 2F
你寫了sleep不就是為了要等嗎?
04/08 19:29, 2F

04/08 21:02, , 3F
30秒是做很多事的大約時間 目前改用1F建議 把程式再切成
04/08 21:02, 3F

04/08 21:03, , 4F
很多小段 每段加上DoEvents 謝謝
04/08 21:03, 4F

04/08 21:24, , 5F
doevents不建議常用~另開thread就可以下指令終止了
04/08 21:24, 5F

04/08 21:37, , 6F
請問是指用B執行緒去終止A執行緒(迴圈)的意思嗎
04/08 21:37, 6F

04/08 22:20, , 7F
BackgroundWorker 參考看看吧~
04/08 22:20, 7F

04/08 22:52, , 8F
好的 多謝樓上各位板友指點 有點頭緒了
04/08 22:52, 8F

04/09 07:40, , 9F
放到另一個線程(執行緒),應該是最佳做法
04/09 07:40, 9F
文章代碼(AID): #1HOdpD5K (Visual_Basic)
文章代碼(AID): #1HOdpD5K (Visual_Basic)