我需要等待我的应用程序的一些事件,或做一些其他的东西睡眠不结冰GUI VB6
之前等待somew时间elaps我在VB6中尝试这个伪代码
starttime=gettickcount
do
endtime=gettickcount
if endtime-starttime=>waittime then exit do
doevents()
loop
但这似乎冻结鬼,我需要一种替代方法,将等待不FREEZ的GUI
编辑我忘了的DoEvents,敬请注意
我需要等待我的应用程序的一些事件,或做一些其他的东西睡眠不结冰GUI VB6
之前等待somew时间elaps我在VB6中尝试这个伪代码
starttime=gettickcount
do
endtime=gettickcount
if endtime-starttime=>waittime then exit do
doevents()
loop
但这似乎冻结鬼,我需要一种替代方法,将等待不FREEZ的GUI
编辑我忘了的DoEvents,敬请注意
我建议使用计时器。只要达到它的滴答计数,计时器就会触发事件。所以你可以告诉一些事情每3秒,3分钟,1小时等。
计时器将在后台运行,允许您的应用程序继续正常运行,同时它倒计时。
中添加“调用DoEvents”您的vb6代码...它允许应用程序重新绘制...
只要将DOevents添加到代码中,但却没有真正理解为什么需要它,它的含义就是稍后出现+非常+微妙问题的秘诀。 Doevents会产生效果,这意味着您的应用中的其他事件可能会触发,这意味着您的应用中的其他例程(您可能从未想过要重新进入)可能会重新进入,这可能会导致各种问题。 – DarinH 2011-04-18 20:06:47
+1 - 这是正确的答案。你不应该呆在一个事件处理程序中,而不会超过必要的时间。如果你以后需要做些事情,那么可以在适当的时候使用'Timer'来引发一个事件。永远不要坐在一个紧密的循环中,因为你阻止了GUI线程,所以你不会让它重绘。 – 2011-04-17 02:39:56
@Scott所以在一个对象event_handler中,我必须等待,并且你说我应该使用计时器?我该怎么做 – Smith 2011-04-17 09:28:37
下面是一个简单的例子:http://www.vb6.us/tutorials/understanding-timer-control-vb6 – Mikecito 2011-04-17 10:38:11