在事件中加入doevents 语句.
例如:
      for i=0 to 1023 
          doevents
          .value=data(i)  柱状图  
          .col=
          .row=
          .text =data(i)  列表
       next i

解决方案 »

  1.   

    加上 “doevents”
    不是只能转让控制权吗,那我不进行任何操作,还不是一样吗?
      

  2.   

    我的感觉就是执行一个循环语句,怎么就能消耗那么多资源呢!!!因为如果我占用了太多的资源的话,我timer1取数据的时候有可能就丢了一些数据。所以有没有好的办法解决啊?谢谢了!!!
      

  3.   

    我觉得加上doevents应该没问题.
      

  4.   

    不是啊,timer间隔如果小于执行它的代码的时间,它不就是等着程序执行完了以后在触发吗!!再一个我的算法没什么:
    就是timer1得数据,并且存在data(i)里 ,每隔0.3秒存一次;
    在timer2 中就是读data(i)里的数据,
    先划图
    然后在显示在表格里
    for i=0 to 1023
        .col=
        .row=
        .text=data(i)
    next i
    就这样,也没什么算法啊!!但是一执行就占资源100%。
      

  5.   

    就你说的情况来看,你的程序造成了死循环
    应该在某个时候结束timer事件
    timer1.enabled=false
      

  6.   

    多线程,VB中怎么用啊,从来没用过!!!我那个程序是从网络传数据,网络不关,就一直传,我就一直划。当然在暂停的时候,是timer1.enabled=false的。但是我说的意思,在timer事件中,就执行
    for i=0 to 1023 ,怎么就能把资源全给占了呢,能不能不让它占那么多啊!!!
      

  7.   

    你将俩个Timer控件分开试一下,我到是怀疑从网络取数的占用大量的CPU呢
    因为你这的循环还可以啊
    不过就算他百分之百的占用,其他的程序就不响应了?
      

  8.   

    ba_saner() :
       第一,你说分开,我现在已经分开了,一个取数据,一个用数据吗?你说的分开指的是什么啊?
       第二,因为执行这个循环的时候,有可能造成取数据的事件不执行,就有可能丢数据。
       我感觉一个1024个循环应该很快的啊,这么感觉好像有点慢似的。
      

  9.   

    我的意思就是看看是那个timer占用CPU,
    一个取数据,一个用数据!
    因为我刚做的用timer取网络数据,结果搞虚拟内存不足了,
    参见
    http://expert.csdn.net/expert/topic/1247/1247381.xml
      

  10.   

    啊,但是怎么调试timer事件,怎么看是占了很多的资源啊!!!一步一步执行肯定不行,请告诉我一个好办法,好吗?谢谢了!!!
      

  11.   

    任务管理器啊,看内存,CPU
    可是timer的调试是有些麻烦关于timer控件我在疑惑中啊
      

  12.   

    设计不当。任务负载太重,间隔太短。
    建议:
    1 减少一个timer。在一个timer中通过计数器变量解决多个时间间隔问题。
    2 尽可能不用循环