VB 中自定义事件是否可以自定义触发条件??
比如当某个变量的值为多少时事件会被触发
其实我需要的是一个这样的代码:在一个过程中触发另一个过程,然后原来的过程可以继续进行不会受到被触发过程的影响。
望前辈指点
[解决办法]
vb是单线程环境,执行过程为
raiseevent触发事件
事件处理代码
raiseevent的后续代码
[解决办法]
你这个要求,如果事件触发后的处理过程里没有循环之类的会执行很久的过程的话,那就可以使用定时器来代替你触发事件.
触发事件的过程,在产生某个事件时,只需要把事件对应的定时器启动,然后就可以返回过程继续执行.
而定时器的事件里再写上RaiseEvent语句来产生事件,同时别忘了禁用当前定时器以免不断触发.
如果被调用的过程是一个循环啊查询啊之类要执行很久的过程,那就只有用多线程了.
可以创建一个ActiveX EXE工程,工程属性中选上"每对象对应一个线程",再把每个事件处理过程写成一个类,放在这个ActiveX EXE工程中作为公共类.
编译这个工程,然后在主EXE中引用,并在上面使用定时器触发事件的结构基础上,让每个事件的处理使用ActiveX EXE中的类来完成,这些类在被使用CreateObject函数创建实例时,将会位于一个独立的单元线程中,不会影响主EXE.
[解决办法]
那把查询过程封装到ActiveX EXE中去吧,然后做好调用接口.
关于ActiveX EXE的多线程实现方式代码可以参考这里:
VB6里面使用多线程提高穷举速度(VB6代码)