Do Evens? 請問在哪些情況下用Do Evens?他有哪些意義和用途? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我一般在循环中使用。用以将控制权交给操作系统来相应别的进程。DoEvents 函数 转让控制权,以便让操作系统处理其它的事件。语法DoEvents( )说明DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。 当你有大量代码连续执行的情况下,例如楼上说的大量循环中。目的就是不让你的代码执行不独占系统资源,给系统留出一些时间片执行多任务。例如,你在用轮询方式等待串口的数据,就可以Do Until comm1.mycomm.CommEvent = comEvReceive And mycomm.InBufferCount > 0 DoEventsLoop如果你不加 DoEvents,控件的事件和属性就不会改变。因为系统没有机会做这些。 就是把控制权交给系统.在一个比较长的循环里,要用DOEVENTS,否则你的程序会假死在那里,直到循环结束 你可以在一些很长的等待过程中插入 DOEVENTS dim rs as new recordsetrs.movefirstrs.deleters.deleters.delete当你执行第二个删除记录语句时,便开始会出错,可以改为rs.movefirstrs.deletedoeventsrs.deletedoeventsrs.delete 當數據 處理很多時,VB需要設置斷點,所以用doeventsdoevents 一般都是做延進處理,與sleep()一起使用。doeventssleep(10) '延時10毫秒 返回一个整数,表示当前打开的form数 今天闲着无聊,自己写了一段代码,大家有空来看看,一起讨论一下了 请援救 在.net 环境下写了一个组件,在vb6下使用时出现如下错误:大家分析一下.... 界面怎么做 让程序共享 这样做有问题吗 请进 ADOADOADO ??? 在线等待!!!!! 用VB如何实现对数据库的压缩? 请问高手们,我在做一个人事档案管理系统,要求做到扫描照片存如数据库,大家觉得我用什么数据库好,怎么实现扫描呢? 怎么样加快程序的运行速度,主要针对于窗体的自动弹出? 十万火急!一个DLL,PB的声明和用法,求改成VB的 大家好
DoEvents 函数
转让控制权,以便让操作系统处理其它的事件。语法DoEvents( )说明DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。
目的就是不让你的代码执行不独占系统资源,给系统留出一些时间片执行多任务。例如,你在用轮询方式等待串口的数据,就可以Do Until comm1.mycomm.CommEvent = comEvReceive And mycomm.InBufferCount > 0
DoEvents
Loop如果你不加 DoEvents,控件的事件和属性就不会改变。因为系统没有机会做这些。
在一个比较长的循环里,要用DOEVENTS,否则你的程序会假死在那里,直到循环结束
dim rs as new recordsetrs.movefirst
rs.delete
rs.delete
rs.delete当你执行第二个删除记录语句时,便开始会出错,可以改为rs.movefirst
rs.delete
doevents
rs.delete
doevents
rs.delete
sleep(10) '延時10毫秒