VB中重要的DoEvents函数
2004-07-10 10:39
183 查看
有很多程序员都不了解VB中的DoEvents函数。DoEvents函数可以临时返回控制器给操作系统,并允许它完成其他可能发生的事件。
当一个程序的代码需要花很长的时间去执行,比如在一个复杂的数学计算的时候,你需要运用DoEvents函数。在你代码适当的位置调用DoEvents函数,能够改变程序响应的时间。
这里有一个例子:在VB里创建一个标准的EXE文件并放置一个CommandButton和一个TextBox,然后,将下面的代码放入CommandButton的单击事件处理程序中:
Private Sub Command1_Click()
Dim i As Long, j As Long
For i = 1 To 100
Text1.Text = i
For j = 1 To 100000
NextNext
Text1.Text = “Done”
End Sub
你可以发现这个程序中有嵌套式循环,循环将持续几秒钟。每次,外部循环反复执行I
的值显示在text box中。当循环结束时,Done也显示出来了。
在你运行这个程序的时候究竟发生了什么呢?然而,text box不会改变直到Done显示
出来。问题在于在执行循环的时候系统非常繁忙,而循环语句中的I要显示在text box里面,这延迟windows队列。当循环完成以后,所有的请求都被执行。
现在在Text1.Text = i调用DoEvents函数。当你运行程序的时候,你会发现text box记下了I的值。调用DoEvents函数可以释放系统内存来完成其他请求,然后将控制器返回给VB程序。
虽然调用DoEvents函数是以速度为代价,但是可以让程序有时间执行其他的事件,这个代价是值得的。
这里有一个例子:在VB里创建一个标准的EXE文件并放置一个CommandButton和一个TextBox,然后,将下面的代码放入CommandButton的单击事件处理程序中:
Private Sub Command1_Click()
Dim i As Long, j As Long
For i = 1 To 100
Text1.Text = i
For j = 1 To 100000
NextNext
Text1.Text = “Done”
End Sub
你可以发现这个程序中有嵌套式循环,循环将持续几秒钟。每次,外部循环反复执行I
的值显示在text box中。当循环结束时,Done也显示出来了。
在你运行这个程序的时候究竟发生了什么呢?然而,text box不会改变直到Done显示
出来。问题在于在执行循环的时候系统非常繁忙,而循环语句中的I要显示在text box里面,这延迟windows队列。当循环完成以后,所有的请求都被执行。
现在在Text1.Text = i调用DoEvents函数。当你运行程序的时候,你会发现text box记下了I的值。调用DoEvents函数可以释放系统内存来完成其他请求,然后将控制器返回给VB程序。
虽然调用DoEvents函数是以速度为代价,但是可以让程序有时间执行其他的事件,这个代价是值得的。
相关文章推荐
- .NET重要概念总结(VB.NET版)
- VB中重要的DoEvents函数
- vb Do循环语句的几种形式
- 关于 do ....while() 的重要用法
- 在vb中使用Iphlpapi.dll获取网络信息 第四章 第二节 一个重要函数
- [VB.NET]font属性重要问题 在线等!
- 在vb中使用Iphlpapi.dll获取网络信息 第四章 第二节 一个重要函数
- vb.net 中最小化到托盘和锁定窗体大小的问题(notifyIcon的两个重要属性)
- 迁移到 ASP .NET:需考虑的重要问题(VB.net)
- [学习日记]vb.net里的两个重要的时间函数
- vb.net 与 c# 的switch ... case ...的一个重要区别
- vb.net 教程 2-5 流程控制:循环语句 Do...Loop 1
- vb中两种重要的控制语句
- 一番话--vb转入vb.net最重要的事情
- VB基础知识之Do...Loop循环
- vb.net 教程 2-5 流程控制:循环语句 Do...Loop 2
- VB.NET中实现IEnumerator接口
- 终于考完《***思想,邓小平理论和三个代表重要思想》了。
- VB写不用注册的DLL的问题
- RTOS的一些重要概念以及代码维护中的相应问题举例