本帖最后由 qiji2007 于 2009-08-16 16:11:04 编辑

解决方案 »

  1.   

    sleep 没用过。doevents :如果在一个长时间的循环里,如果没有doevents,xp在这个循环的期间内,其他的什么事情都做不了了。好像电脑死机的感觉。timer:作为延时比较好理解。在没有任何事件触发的情况下,可以使用timer进行 private sub 之间的转移。即时间一到自动执行某部分程序。关于timer在sleep的状态下是否会停,没做过实验。我理解不应该停。因为timer和电脑的时钟连在一起,系统的时钟处理(中断),要高于应用程序的处理。否则电脑显示的时间就会发生错误水平有限,仅供参考
      

  2.   

    http://blog.csdn.net/netnok/archive/2008/12/08/3476232.aspx我的理解:Doevents仅仅是CPU腾出一块时间片,用于响应、处理当前其他的进程。sleep 把进程休眠了,保留寄存器里的当前地址和累加器的数据,让出资源,当时间到了的时候再唤醒。
      

  3.   

    对于VB而言:
    1、Sleep:挂起进程,不执行,知道指定时间到了位置,恢复进程执行。
    2、DoEvents:强制将进程的CPU资源交给操作系统,以分配给其他任务,照顾到其他任务的执行。执行完毕后将归还CPU资源给当前进程。
      

  4.   

    方向错误.webbrowser的documentcomplet事件标志着网页加载完成,在那里面做你的处理即可.每个人的网络环境都不同,使用延时是完全不可靠的做法.当然.....答非所问了.....
      

  5.   

    sleep 是你工作期间休息了一会儿,
    Doevents是你到银行办事,你办完需要半天时间,但你身后排队人多时,你让别人先办,再接着办你的业务
      

  6.   

    sleep 挂起进程
    doenvents 释放控件权给操作系统,这样在一个很大值的循环里,你不会感觉到机子象死掉了一样.
      

  7.   

    DoEvents,挂起当前事件处理程序。从消息队列里面取出消息,并且执行。
    Sleep 语句是 BASIC 时代的,表示延迟执行,在 VB 里面已经没有了。LZ说的是 Windows API 的 Sleep,挂起当前线程。简单地说,Sleep释放掉当前程序的控制权,别的程序不卡了,本程序照样被悬挂,无法响应。
    DoEvents,允许程序在耗时的计算时响应别的事件。但是别的程序因为获得不了更多的CPU,会很慢。
    可以配合使用Dleep和DoEvents。DoEvents允许代码重入,尤其是有全局变量和系统调用的代码,慎用DoEvents。完美的解决方案是使用多线程。
      

  8.   

    Sleep :你睡一会儿吧,到时间叫醒你...
    DoEvents :劳驾你让一下,这道不能你一个人占着...通俗不?
      

  9.   

    马儿说的对, 你的主要问题不是sleep和doevents,而是要到相应的事件中去处理....
      

  10.   

    此语简单通俗,太好理解.
    从这个观点看,sleep睡一会效率更高.
      

  11.   

    DoEvents 是不自私的 对吗
      

  12.   

    两者根本没有关系, 用SLEEP就是让程序运行到该处停止一段时间(注意,是停止)
    用DOEVENTS就是让边上干等着的程序先干点什么去.(不因为当前代码的长时间运行而使程序显得没有响应,一般放在计算量比较高的循环中)
      

  13.   

    sleep彻底挂起停止
    doevents 响应其他事件