作者renmax (竹科學友哥)
看板Visual_Basic
標題[.NET] Thread.Sleep 和DoEvents
時間Wed Dec 28 11:21:34 2016
請輸入專案類型(網站專案或者應用程式專案):VS2005
各位前輩好,code的片段如下:
Log("GO!")
Do
If Value = 100 Then
Log("Done!")
.............
.............
Exit Do
Else
If Value = 200 Then
Log("YA!")
...............
...............
GoTo ready
End If
System.Threading.Thread.Sleep(100)
System.Windows.Forms.Application.DoEvents()
End If
Loop
從Log處發現從印出GO!看到Done!之間跑了三十多秒,期間並沒有印出YA!
所以,我的猜測應該是在下面兩行跑了三十多秒的關係
System.Threading.Thread.Sleep(100)
System.Windows.Forms.Application.DoEvents()
請問一下,這兩行的用意通常都用在什麼時機點呢?
若我把這兩行給Mark了,是否會造成什麼影響呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.176.85
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1482895296.A.3DD.html
1F:→ niklee29: Ya 當然不會出現因為100會先達到然後你就exit do 了... 12/28 14:46
2F:→ renmax: 不好意思 可能我表達有問題 我想問為什麼會在迴圈跑三十多 12/28 15:41
3F:→ renmax: 秒後 才會進入IF判斷式? 是因為SYSYTEM那兩行的關係嗎? 12/28 15:42
4F:→ niklee29: sleep(100) 代表程式會停0.1秒後繼續,所以看你迴圈跑幾 12/28 16:09
5F:→ niklee29: 次,每跑一次+0.1s 12/28 16:09
6F:→ niklee29: 如果不是要限制迴圈頻率就把那兩行刪了 12/28 16:11