У меня есть устаревший массивный редактор vb6 с множеством сторонних библиотек и элементов управления, и в последнее время возникла необходимость настроить его так, чтобы он стал многопоточным, чтобы я мог запускать несколько других форм независимо от основной формы редактора. По сути, между этими другими формами и главным редактором существует минимальное взаимодействие, за исключением запуска других форм одним нажатием кнопки на главной странице.
Итак, из большого количества поисков я нашел метод, который преобразует текущее приложение в многопоточное, настроив его как exe-файл activex и добавив набор классов для 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-файл и вызвал их через оболочку. Работает красиво :)
Спасибо