非常感谢您宝贵的帮助。
非常感谢您宝贵的帮助。
我认为 Matt Curland 的 ActiveX exe 方法是经典的方法。或者,您可以使用 DoEvents。或将工作委托给一个单独的 ActiveX exe,比如 this。使用 .NET BackgroundWorker 组件 也不错,但事实证明它无法正常工作。
可能不太可能,但您可能要考虑切换到.NET,在那里VB完全支持线程。
另一种机智的方法(不是很好,但它可以工作)可能是外壳一个exe来完成工作,并让您的VB6简单地轮询结果文件。这将是一个单独的进程,因此是完全隔离的线程。非常混乱,我不建议这样做。
http://www.xtremevbtalk.com/showpost.php?p=1304628&postcount=4
可以使用Windows内核线程调用来实现,如下面的代码所示。
声明函数CreateThread Lib "kernel32" (lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
声明函数TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
声明函数CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long