VB 工程组问题--请教高手

来源:百度知道 编辑:UC知道 时间:2024/07/04 21:10:38
我因为需要一个工程在跑循环的过程中执行第二个程序的FOR循环,当然第一个程序的执行是不能停止的,这种效果需要怎么做呢?启动EXE的时候需要同时启动两个FORM,请教各位大虾!
用SUB MAIN来做是否可以?那程序代码应该如果写呢?
如果不可以需要怎么实现?请给出代码,谢谢!

另外同一工程中是否能做?是否需要双线程呢?
3楼回答的方法不太可行的,我之前在同一个工程中试过了,跑第二个FORM第一个FORM的程序就暂停了,需要等第二个跑完第一个才继续执行。感觉就是一个工程只有一个焦点,需要用两个工程或者双线程做才可以的。。
还请各位大虾帮忙看一下,如果可行我会加分的,谢谢!

---------------
另外2个循环间没什么关系的,也可以用加载两次工程的办法,但是要可以生成一个EXE文件。
----------------------------------------------------------------------------
非常感谢大家的帮助。
问题已经解决了,我是用启动模块把自己启动两次的办法来做的。
说实话用的方法和你们的不一样,不过 kissyou233和 乱石都非常热心
我也不知道把分给谁了。。。

双工程。那完全没有必要!

你可以这样试一下
启动2个窗体,
每个窗体要执行的过程都各自创建自己的线程,让它们独立运行!

如果楼主不会用线程的话可以留言

3楼的方法不是不行,如果你两个窗体都建立Timer,然后访问公共资源。
比如:debug.printf "form1 print"
这样的话你可以看到效果的。。。显示是一个窗体运行一个时间片,是符合多线程的运行机制的!
但是如果不是访问公共资源的话,比如各自访问各自窗体的控件。

好像会阻塞。。。。这可能是VB开发环境自己做了判断的吧!
如果访问互斥资源就建立线程,否则就都在主线程运行!

你这种情况好像只能用双线程来解决。把第二个程序编译成EXE,然后在第一个程序的循环之前SHELL第二个程序。

Private Sub Command1_Click()
'声明了线程ID
Dim threadid1 As Long
Dim threadid2 As Long

'参数一,lpThreadAttributes 线程安全属性,传递为NULL
'参数二,dwStackSize ,线程堆栈大小,可以为0,表示堆栈和此应用堆栈相同
'参数三,lpstartAddress ,执行函数地址,用AddressOf 获取
'参数四,lpParameter ,执行函数的参数地址,可以是一个记录或者是别的类型,用VarPtr获取参数地址(varptr为未公开函数)
'参数五,dwCreationFlags ,表示线程创建后的状态!,0表示立即运行,create_SUSPENDED表示线程挂起
'参数六,lpThreadID 表示分配给线程的线程号

Call CreateThread(Null, ByVal O&, AddressOf Module1.OutText1, VarP