我有一个带有大量 3rd 方库和控件的旧版大型 vb6 编辑器,最近需要对其进行设置以使其成为多线程,以便我可以独立于主编辑器表单运行其他一些表单。基本上,这些其他表单和主编辑器之间的通信最少,除了通过单击主页上的按钮来运行其他表单。
因此,从大量谷歌搜索中,我找到了一种将当前应用程序转换为多线程应用程序的方法,方法是将其设置为 activex exe 并添加一个设置为 global-multi-use 的类以允许这种情况发生。现在在通过调试模式进行编辑和测试时,我发现当我退出时,有时会发生很多奇怪的崩溃。
'main.frm - button click call
'On the button click, create a new object
Set obj = CreateObject("MyApp.clsThread")
Call obj.NewThread
'clsThread
' Create a new form and load it to run on a new thread
Public Sub NewThread()
Dim frm As Object
Set frm = New frmDogbert
Load frmDogbert
frm.show
Set frm = Nothing
End Sub
那么当我这样做时,我绝对必须知道什么,即潜在的问题等?因为我担心应用程序似乎变得越来越不稳定。还是有更好的方法来做到这一点?
更新:
我没有强行将我的应用程序破解为伪多线程应用程序,而是听取了这里好人的建议,并将组件重构为标准 exe,并将我的应用程序恢复为标准 exe 并通过 shell 调用它们。工作精美:)
谢谢