我的问题是关于VB6中的多线程。这似乎是一个过时的问题,因为现在使用VB6的人越来越少了。
当然,原生VB6并不直接支持多线程。因此,我创建了一个C++ dll,并公开了一个方法,该方法调用CreateThread来创建一个工作线程,并公开一些其他方法来控制线程。这条线看起来没问题。
为了通知回VB6应用程序,我首先将Me.hWnd传递给dll,并在创建线程之前挂钩WndProc。然后,在需要的地方调用hWnd的SendMessage。这似乎也是可以的。
在VB6中使用多线程,这种方法稳定吗?我真的需要你的帮助!
PS:用CreateThread代替SHCreateThread接口怎么样?
发布于 2016-05-06 00:01:00
我不确定您的.dll方法,但实际上您可以在VB6中使用一些技巧来创建额外的线程。如果您将timer对象拖放到窗体上,则将其设置为在1毫秒内触发,触发的timerevent将在单独的线程中触发。从那里你可以调用你需要的任何其他函数。我以前经常使用这个技巧来做后台处理之类的事情。
专业提示:一旦定时器开火,立即停用,否则会发生混乱。
https://stackoverflow.com/questions/37005350
复制相似问题