在执行长时间运算的过程中多加几个Doevent即可.

解决方案 »

  1.   

    是的,在需要长时间执行的过程的地方加上一条DoEvents语句,就能响应其他的事件了。
    比如,有一个很长的循环:
    while 条件
       表达式  '执行的语句
       DoEvents '加上一条
    loop
      

  2.   

    doevents并非什么好东西,能少用尽量少用
    如果是一个单独的运算过程,可以考虑开个线程
      

  3.   

    加doevents后速度会慢N倍!!!!!!
      

  4.   

    I can't agree more with jifeng.前阵子写Web服务器负载测试小程序,因为是自己用,所以顺手用了VB。
    为了加大并发请求的数量已测试服务器响应能力,在VB中使用了多线程。结果是极其恶劣的,并发连接数不能超过1000。512M的内存也无济于事,
    4秒后几乎所有线程中的连接都陷入等待中。服务器好好的,我的机器
    却死掉了。当然,如果你可以精确的将线程数控制住,而且确信有足够的错误处理
    经验,那么使用线程算是不错的方法。此外,可以考虑你的运算过程能
    否进一步优化?
      

  5.   

    to geolano(CICS) 我所说的是在对多线程共享的变量,对象操作时,用VB控制起来很麻烦Web服务器更是千万别用VB,资源占用太大,速度跟不上
      

  6.   

    谢谢各位,但我试过,在for next下doevents有用,但sql就没用,多线程不会写,有例子吗?
      

  7.   

    to haor:
    怎么做到?
    谢谢
      

  8.   

    recordset.Open Source, ActiveConnection, CursorType, LockType, Options
    最后一个参数设置为adExecuteAsync,详情请查看MSDN
      

  9.   

    应为adAsyncExecute,msdn上是错的,但我搞不掂,看我另起一个的问题。
      

  10.   

    对于这个问题,我想你做成activeX,然后把其中一项工作交给它处理,另一项给自己处理,可以得到比较好的效果。这样不算多线程,但效果应该不错。