在我的程序中,有两个循环,两个循环的作用是相同的,循环中都用了doevents,循环的目的是等到某个变量变化之后,在接着往下执行,现在的问题是,如果先执行到循环1,那么即使此刻循环2中的变量有变化,循环2也不会接着向下执行,要等到循环1结束之后,循环2才执行,这是怎么回事呀,doevents的作用不是释放系统控制权吗,怎么没释放呢。

解决方案 »

  1.   

    用两个定时器(timerr控件)去处理,而不是用顺序的两个循环来去理。
      

  2.   

    好大的循环,需要doevents?把程序贴出来看二下!
      

  3.   

    一般加doevents只是为了在比较大的循环中不影响界面上的响应,或者在winsock、串口时收发送据不停滞
      

  4.   

    Doevents 只是让线程去处理消息队列中的下一条消息,处理完成之后回到 Devents 下面执行。有关消息 :http://baike.baidu.com/view/2724978.htm
      

  5.   

    http://baike.baidu.com/view/2724978.htm百科有
      

  6.   

    解决不掉的,仔细看这几个帖子,或许可以学到别的方法
    http://topic.csdn.net/u/20101126/08/c5710d7b-bf03-4d6b-aa3f-4b3037f16d5e.html
      

  7.   

    doevents释放系统控制权给别的程序,然后转到自己的下一条语句
      

  8.   

    我也遇到过类似问题:
    使用定时器做的一个进度条(由于无法确定执行时间与循环次数)在执行一个处理文档的代码块(类)之前,启动定时器,执行之后关闭定时器,预想进度条应该循环执行。但是没有执行,尽管使用了DoEvents.
    但是在无代码的窗体之上,执行(有启动、关闭按钮)效果还满意。