CSDN论坛 > VB > VB基础类

关于DoEvents语句 [问题点数:10分,结帖人hh014]

Bbs1
本版专家分:10
结帖率 100%
CSDN今日推荐
Bbs6
本版专家分:8633
Bbs6
本版专家分:8633
Bbs6
本版专家分:6580
Bbs6
本版专家分:6580
Bbs4
本版专家分:1753
Bbs7
本版专家分:11354
Blank
蓝花 2004年5月 VB大版内专家分月排行榜第三
Bbs5
本版专家分:2386
匿名用户不能发表回复!
其他相关推荐
Doevents函数详解
Doevents函数是一个很好用的函数,但很多人对它的用法不清楚或有误解。由于我在网上查到一篇关于此函数的用法,并添加了一些内容,不敢独享,特此献出。    其中有一个“控时循环和变速齿轮”的内容,有点意思,感兴趣的可看一看。    DoEvents函数的功能是:转让控制权,以便让操作系统处理其它的事件。     问:为什么要用doevents?      A.在需要用某一循环处理相当耗时或者很快
用VC实现DoEvents
 VB下有一个DoEvents方法,可以让程序在执行操作的同时仍可以处理其他事件,用这个方法可以有效地解决画面无法刷新的问题。VC下的DoEvents版本的代码如下:MSG msg;while (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE) ) {    TranslateMessage(&msg);    DispatchMessage(&msg)
慎用Application.DoEvents( )
如果在UI的消息处理函数中进行较大量的计算或对界面进行操作,占用较长时间时可以在中间调用Application.DoEvents来响应用户操作,但不建议这样做,替代的方法就是在后台线程中进行这些操作,用线程池是一个不错的方法(例如System.Threading.ThreadPool)。 该函数只能在UI的主线程中调用,不不不要在工作线程中调用该函数,否则Application.DoEvents可能挂死永不退出,使用reflector反编译了一下这个函数,发现里面没有使用lock之类的线程锁,可能不是线程
VB中的DoEvents命令,在Delphi中与其对应命令
Application.ProcessMessages作用防止进程阻塞,使程序能够响应消息队列中的其他事件。 实例:var i:integer;beginfor  i:=0  to 500000  dobeginlabel3.Caption:=inttostr(i+1);Application.ProcessMessages;//注意这里噢,如果没有这条,系统将假死,加上这句后label3将即时显
关于DoEvents
看了半天CSDN 还有点莫名其妙,下边是里边的示例程序,此按钮最初的标题是 "Process"。 Private Sub Command1_Click() 过程的所有实例都 共享静态变量。 Static blnProcessing As Boolean Dim lngCt As Long Dim intYieldCt As Integer Dim dblDummy As Double
C# Application.DoEvents() 防界面假死例子。
请自行测试有Application.DoEvents() 和没有Application.DoEvents()的区别,即可。 有疑问可发送Email给我: Andrew.Wangxu@gmail.com
C# Application.DoEvents() 处理队列消息,防界面假死。
该方法可以处理当前队列的消息,比如一个for循环 5000次 向TextBox中追加文本,那肯定会假死一会儿的。 此时便可使用Application.DoEvents()来处理队列的信息。 简单说下使用Application.DoEvents() 和 不使用Appli
通过Doevent()方式 主线程安全关闭子线程
参考http://blog.csdn.net/lwbeyond/article/details/5686165 1. 主线程定义 HANDLE hEvent; 2,主线程新建线程 UINT MyThread(LPVOID pParam) { CMFCApplication2Dlg *pDlg = (CMFCApplication2Dlg*)pParam; CProgressCtrl
实现VB的DoEvents函数(VC++)
在VC++中,碰到了比如等待通讯数据等需要很长时间的循环时,在循环里加入类似VB的DoEvents函数,使画面一直处于事件响应状态。实际上,DoEvents函数的内容就是一个窗口消息处理环。void DoEvents(){ MSG msg; while(::PeekMessage(&msg, NULL, NULL, NULL, PM_NOREMOVE))
VB中DoEvents的注意事项
对与再大循环里 加入   DoEvents却是可以使应用程序响应其他程序,但是 DoEvents 也会很大程度上影响循环的速度,所以一般情况我这样用 If GetInputState Then DoEvents虽然多了个判断语句,但速度上确快了很多 比较以下代码代码就知道了速度的差别Private Declare Function GetInputState Lib "user32" ()
关闭