用vb6实现多线程

时间:2011-03-09 05:20:54

标签: multithreading vb6

我的任务是通过连接到PC的多个串行端口实现自动化过程。 如何使用vb6实现多线程,通过连接的串口独立完成一些自动化任务?

提前致谢。

3 个答案:

答案 0 :(得分:3)

Desaware的SpyWorks product(现在作为UniversalCOM出售)有一个用于在VB6中创建线程的组件(dwBackThread)。

另外,请查看“更好的多线程低开销”(part1part2),ThreadRunner(4部分,请参阅作者其他帖子)和MThreadVB免费的开源解决方案。我没有亲自试过这些,但所有人都受到社区的欢迎。

VB6显然不是为传统意义上的线程设计的,但使用第三方组件或一些创意编码,可以实现。

答案 1 :(得分:2)

不,vb6不支持多线程。它通过攻击winapi在vb5中运行,但在vb6中完全被破坏了。错误处理被破坏,一个线程中的错误导致所有错误崩溃。升级到vb.net以恢复它。

答案 2 :(得分:2)

如果你避免编写程序的常见错误,就好像你在MS-DOS下使用QBasic一样,这通常不是问题。

可以异步使用MSComm控件,在输入或错误时引发OnComm事件。这样做而不是编写buzz-loops轮询状态(更糟糕的是调用DoEvents()以尝试保持响应)可以消除对显式工作线程的需要。

人们以这种方式编写TCP服务器,管理数百甚至数千个同时连接。您可以轻松地对串行端口通信执行相同的操作,因为以更低的数据速率处理的“连接”要少得多。

每个命令按钮都不需要单独的线程,并且每个MSComm控件都不需要线程。