提高VB的程序实时性
最近在用VB开发一个项目的时候,我遇到这样的一个问题,我要写一段代码,这段代码按模块可以切成3个部分。这三个部分使用2个变量串起来:开始的时候代码模块1啪啪啪开始执行,执行完了之后变量1为true,同时他自己开始了新的一轮循环;
代码模块2一直在等待变量1为true,当变量1为true时,代码模块2也开始啪啪啪执行,开始执行的时候将变量1变false。执行完之后变量2为TRUE;
代码模块3一直在等待变量2为true,当变量2为true时,代码模块3也开始啪啪啪执行,开始执行的时候将变量2变false。执行完之后接着等待变量2为true,等待下一轮的循环;
这三个部分代码在执行的时候,互不影响的单独独立执行。只有在完成一轮执行的时候,才检测有关联的变量是否为ON,方便下一轮的执行(比如代码2在执行完一轮之后,检测变量1为true,如果为true则开始新一轮的执行)
现在的问题是,如果我把三个代码块串起来,则如果代码1还没有执行完的时候(我估算代码1可能要执行1s,因为要用到N多延时),那么代码2就不能干活。如果能够让代码1,2,3同时执行的话,那么只需要在各个代码模块干完活之后,检测一下是不是可以开始新一轮工作,这样整机效率就高了很多了!!
问题来了:怎么样做,可以让3个代码模块独立干活呢?
VB 并行执行 实时性 既然是代码自己改变状态,用事件是最好的了。
没必要轮询。
话说你为什么不听我的呢。 用类模块,定义事件,需要的时候raiseevent 楼主给分和结帖率都很低,加油啊
是把三个代码段封装到类模块里边去吗??
作为一个程序猿,我知道我不能哭,但我真的快哭了!!
注册了很久,不过最近才过来发帖。。。
穷得很,就剩这点口粮了,版主您就别嫌分少了,。。
您老人家能不能行行好,给点啥具体的建议撒嘛。。。
我都快哭了!!
能给点具体的例子吗,网上的例子大多没注释。给个链接也行呀。。 给自己 PostMessage 来触发后一个任务。 要独立运行三个部分的话,只能多线程 楼主给分和结帖率都很低,加油啊
写个类怎么就哭了呢?
...(我估算代码1可能要执行1s,因为要用到N多延时),那么代码2就不能干活。如果能够让代码1,2,3同时执行的话,那么只需要在各个代码模块干完活之后,检测一下是不是可以开始新一轮工作,这样整机效率就高了很多了!!
问题来了:怎么样做,可以让3个代码模块独立干活呢?
很简单, 好多用VB写代码的人思路老是想着"大一统", 总想毕其功于一役, 用一个老大的程序干完所有工作.
但是实际上这是事倍功半的做法. 因为代码量一上去, 不但内部关系复杂了, 故障率高了, 维护也难了.
更何况VB还不支持多线程.
所以挺简单的办法: 把多个需要"独立"的任务单独编写, 用一个中央调度程序负责所有状态量的收集和调配.
比如你这个程序就可以拆成4个小程序, 三个任务各一个, 中控再一个. 分别编写, 单独调试.
比起傻大粗笨的单个程序灵活不知道多少.
唯一多出来的一点点也就是相互通讯罢了.
想简单点的用DDE, 想着以后做大成为"企业版"的, 可以用数据库, 想着再牛逼点可以分布运行的就用tcp, 反正条条大撸捅罗妈. 用事件比较好。直接抛出去。
补充:VB , 基础类