怎样同时call多个过程??即不等另一个过程完成就执行另一个??

WangTiger 2000-03-19 07:27:00
谢谢!
...全文
486 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jifeng 2001-01-26
  • 打赏
  • 举报
回复
请参考http://www.csdn.net/expert/Topic/59960.shtm
michaelpeng7799 2001-01-25
  • 打赏
  • 举报
回复
用多线程有一个叫createthread的 API。
bucher 2001-01-25
  • 打赏
  • 举报
回复
COFFEE不适合初学者,你可以去看看MSDN中关于VB多线程的实现,就在VB的说明里面。好像叫做“用部件编程”。
lujianjian 2001-01-25
  • 打赏
  • 举报
回复
haor(一个好人)说得对,MSDN 里有一个例子,

Coffee (Coffee2.vbp、CoffWat2.vbp、MTCoffee.vbp、XTimers.vbp)


Coffee 中包含以下几个部分:一个客户端 CoffWat2,两个 ActiveX 部件(OLE 服务器)Coffee2 与 MTCoffee。这三个工程共同演示了以下特性:

使用事件 (Coffee2) 的异步通知。


使用回调方法 (Coffee2) 的异步通知。


多线程 (MTCoffee)。
XTimers.vbp 是一个辅助工程,为 Coffee2 和 MTCoffee 提供了纯代码的定时器。

该示例可以视为“创建 ActiveX 部件”的“创建 ActiveX Exe 部件”循序渐进教程的延伸。关于异步通知与多线程的详细说明,请参阅“连编代码部件”。

文件 描述
CoffWat2.vbp CoffeeWatch 客户端工程。
CWMod1.bas 工程的启动代码
CWForm1.frm 客户端的主窗体。
ICoffNot.cls 用于回调方法的 ICoffeeNotify 接口。
CWNotMe.cls NotifyMe 对象实现 ICoffeeNotify 接口,使它能够接收回调。
CWThread.frm 演示多线程的客户端窗体。
CWCofTrk.cls CoffeeTracker 对象用于等待来自多线程 Coffee 对象的结束事件 。
AboutCof.txt 一个文档备份,演示在工程中存储相关文档的能力。
Coffee2.vbp Coffee2 部件工程。
Co2Cmon.cls CoffeeMonitor 类,用来演示使用事件的异步通知。
Co2Conn.cls Connector 类,用来允许多个客户端共享同一个 CoffeeMonitor 对象。
Co2CMon2.cls CoffeeMonitor2 类,用来演示使用回调方法的异步通知。
Co2Conn2.cls Connector2 类,用来允许多个客户端共享同一个 CoffeeMonitor2 对象。
Co2Mod1.bas 用来保存对共享的 CoffeeMonitor 和 CoffeeMonitor2 对象的引用。
MTCoffee.vbp MTCoffee 部件工程。
MTCoffee.cls 多线程的 Coffee 对象。
MTCMod1.bas 用于演示全局数据的实例化的标准模块。
XTimers.vbp 回调定时器工程.
XTimer.cls XTimer 对象.
XTimerS.bas XTimer.的支持模块。


运行
尽管该实例中的代码不多,但要运行它还是十分复杂的。因为它演示的是进程外部件。为了进行调试,进程外部件必须运行在单独的 Visual Basic 中。

另外,在开发环境中,示例所演示的特性(多线程和纯代码的定时器)要么是不可在其中演示的,要么是在其中演示有危险的。

将 XTimers.vbp 加载到 Visual Basic 中。在“文件”菜单中,选择“生成 XTimers.dll”,将工程编译成为一个 .dll 文件。
这时,千万不要在开发环境下运行 Xtimers。因为 XTimers 使用了 Windows API 来实现一个纯代码的定时器对象,所以必须对它进行编译。

将 MTCoffee 加载到 Visual Basic 中。在“工程”菜单,选择“引用”打开“引用”对话框。选择“Xtimers”,然后单击“确定”,将一个引用设置为编译后的 DLL。


在“文件”菜单,选择“生成 MTCoffee.exe”将工程生成一个.exe 文件。


将 Coffee2.vbp 加载到 Visual Basic 中。选择“工程”菜单中的“引用”,打开“引用”对话框。选定“Xtimers”,然后单击“确定”,将一个引用设置为编译后的 DLL。


按下 CRTL+F5 键,运行 Coffee2 工程。
在运行进程外部件工程的时候要使用 CRTL+F5 键,而不是 F5 键,这样才能够确认在部件为客户端提供对象之前能够捕获所有的编译错误。请参阅《部件工具指南》中的“创建 ActiveX Exe 部件”

启动 Visual Basic 的另一个实例,加载 CoffWat2.vbp。选择“工程”菜单中的“引用”,打开“引用”对话框。在对话框中选择Coffee2 (确保可以使用 Coffee2.vbp) 和 MTCoffee (确保可以使用 MTCoffee.exe),,然后单击“确定”,将引用设置为部件。


按 F5 键运行工程。
在运行示例应用程序时,请注意观察 MTCoffee 在为每个 Coffee 对象分配一个线程时的特点,可以发现,在将线程方式改为循环线程缓冲池之后,最好重新编译 MTCoffee。(在“工程属性”框的“通用”选项卡的“不参加执行”框中可以找到该选项。)在使用循环线程缓冲池时,可以观察到阻塞现象,因为同一线程上的对象共享全局数据。

也可以编译 Coffee2.exe 和 CoffWat2.exe,然后运行多个客户程序,从而观察到异步通知对象 CoffeeMonitor 和 CoffeeMonitor2 的共享。在多个客户时,循环线程缓冲池将引起阻塞,而且不同客户端使用的对象共享数据。

要彻底理解该示例应用程序的来龙去脉,请参阅《创建 ActiveX 部件》中的“连编代码部件”。
haor 2001-01-24
  • 打赏
  • 举报
回复
使用active exe
prefix 2001-01-17
  • 打赏
  • 举报
回复
似乎只能用多线程,即使用timer,当前线程的执行任务没有完成时,它不会再执行另一个。
WangTiger 2001-01-17
  • 打赏
  • 举报
回复
用timer空间!!!然后doevents
vbdabster 2001-01-17
  • 打赏
  • 举报
回复
建立多线程
subzero 2001-01-17
  • 打赏
  • 举报
回复
addressof & createthread
很简单
limengchen 2001-01-17
  • 打赏
  • 举报
回复
VB恐怕不行,因为它不能用多线程,用VC吧.要不用API,参考http://www.csdn.net/expert/Topic/59960.shtm
WangTiger 2000-03-19
  • 打赏
  • 举报
回复
怎样多线程?
Lin 2000-03-19
  • 打赏
  • 举报
回复
???不知你的意思? 采用多线程行不?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧