首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于Doevents,该怎么解决

2012-01-05 
关于Doevents我做了一个系统,为了循环时间加快,没有用时间片,而是用while循环来做得。While(flgtrue)Samp

关于Doevents
我做了一个系统,为了循环时间加快,没有用时间片,而是用while循环来做得。

While   (flg=true)

    Samp         '采样数据处理
    Doevents
wend

但是发现如果在循环执行时,如果鼠标胡乱移动,循环时间会增加,或者弹出另外一个窗口后,循环干脆就不执行了。

不知道有没有什么办法能解决这个问题,使循环不受鼠标或弹出的窗口的影响,能稳定执行下去。或者把影响降低。

[解决办法]
While (flg=true)
Samp '采样数据处理
wend
把这部分代码单独做成一个ActiveX exe,让它在独立的进程执行就不受影响了
[解决办法]
定义一个全局变量Locked,进入While 时,将它设为true,退出While将它设为False
其它,所以事件开头,都加一句If locked then exit sub 这样,在你while时,其它事件就不会占用你的时间了
[解决办法]
楼主可以专门开辟一个独立的线程来处理
While (flg=true)
Samp '采样数据处理
wend
这个部分

因为你现在的系统都是单线程的,同一时间系统只能处理一个事件,你移动光标的时候系统就转去处理光标处理这个事件了,所以你的数据采样部分代码只能等待,等到控制权交回来了,数据采样才能继续下去j;

用VB实现多线程,网上有例子,搜一下便是,应该不难!
[解决办法]
用activeEXE绝对是一个好的选择

热点排行