[.NET] Thread.Sleep 和DoEvents

楼主: renmax (竹科學友哥)   2016-12-28 11:21:34
请输入专案类型(网站专案或者应用程式专案):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了,是否会造成什么影响呢?
谢谢
作者: niklee29 (就是爱喝茶)   2016-12-28 14:46:00
Ya 当然不会出现因为100会先达到然后你就exit do 了...
楼主: renmax (竹科學友哥)   2016-12-28 15:41:00
不好意思 可能我表达有问题 我想问为什么会在循环跑三十多秒后 才会进入IF判断式? 是因为SYSYTEM那两行的关系吗?
作者: niklee29 (就是爱喝茶)   2016-12-28 16:09:00
sleep(100) 代表程式会停0.1秒后继续,所以看你循环跑几次,每跑一次+0.1s如果不是要限制循环频率就把那两行删了

Links booklink

Contact Us: admin [ a t ] ucptt.com