Vb6 visualbasic6.0中的多线程技术

Vb6 visualbasic6.0中的多线程技术,vb6,Vb6,如何在VisualBasic6.0中实现多线程。如果有人能举个例子,那就太好了。VB6对于多线程应用程序来说不是一个很好的环境。没有现成的支持,您需要深入研究标准的WinAPI函数。请看这篇文章,它提供了一个相当全面的示例: 在几个项目中,我使用多个进程在VB6中实现了异步处理。基本上,在与主进程分离的活动exe项目中有一个工作线程。然后,可以向worker exe传递它所需的任何数据并启动它,并引发一个事件,表示它已完成或主进程有数据 它需要更多的资源(一个额外的进程而不是一个线程),但是VB

如何在VisualBasic6.0中实现多线程。如果有人能举个例子,那就太好了。

VB6对于多线程应用程序来说不是一个很好的环境。没有现成的支持,您需要深入研究标准的WinAPI函数。请看这篇文章,它提供了一个相当全面的示例:


在几个项目中,我使用多个进程在VB6中实现了异步处理。基本上,在与主进程分离的活动exe项目中有一个工作线程。然后,可以向worker exe传递它所需的任何数据并启动它,并引发一个事件,表示它已完成或主进程有数据

它需要更多的资源(一个额外的进程而不是一个线程),但是VB6运行在一个单线程单元中,并且没有任何内置的启动新线程的支持


如果您真的需要在一个进程中有多个线程,我建议您使用.net或VC6,而不是VB6。

如果您试图解决的问题是一个长计算,并且您希望保持UI的响应性,那么一种可能是在长计算中频繁调用
DoEvents
函数。这样,您的程序可以处理任何Windows消息,因此UI将响应用户命令。您还可以设置一个“取消”按钮,向您的进程发出需要结束的信号


如果执行此操作,则需要小心禁用可能导致问题的任何控件,例如在长进程启动后再次运行该进程。

可以在VB6中使用Interop Forms Toolkit 2.0进行多线程处理。工具箱 允许您利用.NET功能,而无需被迫升级。因此,您也可以在VB6中将.NET用户控件用作ActiveX控件。

创建“活动X”控件来管理代码。每个控件都有自己的线程。可以堆叠多个控件来执行相同的操作,也可以让单个控件执行唯一的操作

例如,你可以从网上下载一个文件。添加十个控件,您就可以运行十个单独的线程下载,与实际程序运行的线程无关。本质上,它们都只是交互式窗口,由一个实例迷你dll程序控制

再简单不过了。您可以根据需要调节它们,打开和关闭它们,以及创建更多或删除它们。(索引与表单上的任何其他“对象”一样。这些对象都只是active-x控件,由vb运行时DLL管理。)