弱问一下VB里面两个SUB是不是可以同步执行的啊?我有一工程,里面一个SUB是用来采样电流值,并存在一个数组里面,并将采样的电流描绘出来.
还有一个SUB就是根据上一个SUB所得到的采样数据进行计算.这个Sub在按下界面上的计算按钮之后才会运行
此外在form_activate里面也是有采样电流,并绘图的功能的,就是将刚才第一个Sub的一部分代码的.我想问一下,就是说在我按下计算按钮的时候,也就是说执行计算功能的那个SUb的时候,采样还有绘图的那个SUB还执不执行啊?就是说是不是一遍计算,一边采样绘图啊?还是仅仅执行计算那个SUB???比较弱的一个问题,但是调试的时候有些莫名其妙的错误.我觉得这两个SUB是共用一段数组的(这个数组用来保存采样值的).是不是这个原因.要不要加锁啊??谢谢大侠赐教!急!
还有一个SUB就是根据上一个SUB所得到的采样数据进行计算.这个Sub在按下界面上的计算按钮之后才会运行
此外在form_activate里面也是有采样电流,并绘图的功能的,就是将刚才第一个Sub的一部分代码的.我想问一下,就是说在我按下计算按钮的时候,也就是说执行计算功能的那个SUb的时候,采样还有绘图的那个SUB还执不执行啊?就是说是不是一遍计算,一边采样绘图啊?还是仅仅执行计算那个SUB???比较弱的一个问题,但是调试的时候有些莫名其妙的错误.我觉得这两个SUB是共用一段数组的(这个数组用来保存采样值的).是不是这个原因.要不要加锁啊??谢谢大侠赐教!急!
解决方案 »
- 招VB程序员-3个月的项目
- 想在程序中实现将一个表中符合条件的记录导出到对应Access表中,请问如何保证导出数据的完整性,即在导出过程中(这个过程时间比较长),
- 请问?
- 如何获得ini中的所有section?如何删除指定section及下面的keys
- 马上要做个vb + crystal retpoter 8.5 的项目,不知道crystal retpoter啊!哪儿有资料可以看看呢!
- DataGrid可以设置背景颜色吗?
- 如何在程序中嵌入DOS窗口
- 怎样控制两个紧贴在一起的picturebox,通过鼠标在中间拉动,左右两picturebox也自动调节width,保持紧贴在一起?
- msflexgrid控件的打印问题?
- 如何控制MSFlexGrid等的,滚动条的初始位置?
- 如何用ADO方式连接有密码的ACCESS数据库?
- [急]关于调用了shell语句之后
我想问一下,就是说在我按下计算按钮的时候,也就是说执行计算功能的那个SUb的时候,采样还有绘图的那个SUB还执不执行啊?就是说是不是一遍计算,一边采样绘图啊?还是仅仅执行计算那个SUB???
_____________________________________________________________________________
按下计算按钮仅仅执行计算比较弱的一个问题,但是调试的时候有些莫名其妙的错误.我觉得这两个SUB是共用一段数组的(这个数组用来保存采样值的).是不是这个原因.要不要加锁啊??
__________________________________________________________________________
什么错误?显然计算与采用的数据是需要共享.
Private Sub Command1_Click()
........
End Sub
当按钮按下时触发Sub Click()事件。
在各SUB这样写
sub xxx(yyy)
if locked then
'上锁啦,要退出还是等待随你定
endif
locked=true...'你的代码locked=false
end sub
或者说,在窗体刚创建的时候,运行的是form_activate.但是一会儿我按了计算按钮呢,那时候计算按钮固然执行,但是form_activate里面的代码还执不执行啊?
_________________________________________________________________Activate -当一个对象成为活动窗口时发生。
说明一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。Activate 事件仅当一个对象可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Load 语句加载的窗体是不可见的。
比如command1_click,就是command1被点击的时候才执行。执行完了就退出这个sub了。等待执行其他的。
还有Form_activate等,这种是控件的事件sub,是事件发生时候触发的。一般的vb程序,都可以认为是“单线程”的,就是说计算机控制只有一个,在这里还没有执行完的时候,不能跑到那里执行(处理后可以)。比如
sub command1_click
111
222
333
end subsub command2_click
aaa
bbb
end sub
你点了command1,计算机执行111,222,333,如果执行到222的时候点了command2,他不会马上取执行aaa,bbb,而是等222,333执行完了后才去执行aaa,bbb。 当然执行速度一般很快,几微秒感觉不出,如果要执行很久的,那期间你的程序就没法响应事件。 ps :doevents可以解决这个问题。
把form_activate和sub的内容分别放到两个timer控件的_Timer事件里面。把timer控件的interval设到足够小windows的CPU时间片是55,然后在需要同时触发timer控件。不过这样一来楼主的显示和采样可能就不同步了,具体实现方法还要你自己去想了!