У меня есть устаревший массивный редактор 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 и вызвал их через оболочку. Красиво работает :)
Спасибо