Meine Frage ist über das Multithreading in VB 6. Dies scheint eine veraltete Frage zu sein, da jetzt weniger Leute VB 6 verwenden.VB 6 Multithreading Verwirrung
Definitiv unterstützt die native VB 6 Multi-Threading nicht direkt. Also mache ich eine C++ - DLL und stelle eine Methode vor, die CreateThread aufruft, um einen Worker-Thread und einige andere Methoden zu erstellen, um den Thread zu steuern. Der Thread scheint in Ordnung zu sein.
Um wieder an die VB 6-Anwendung zu melden, übergebe ich zunächst Me.hWnd an die DLL und hook die WndProc vor dem Erstellen des Threads. Dann rufen Sie SendMessage an die WoWnd wo benötigt. Es scheint auch in Ordnung zu sein.
Ist diese Methode für die Verwendung von Multithreading in VB 6 stabil? Ich brauche wirklich deine Hilfe!
PS: Wie wäre es mit SHCreateThread API anstelle von CreateThread?
Sie müssen 'SendMessage' auf dem Thread aufrufen, auf dem die' hWnd' erstellt wird. Was du tust, wird in dem Moment in Rauch aufgehen, wenn du es in Produktion bringst. (FYI, VB6 unterstützt Threading durch ActiveX-EXEs.) – wqw
@wqw SendMessage (ich ändere es in PostMessage, um mögliche Blöcke zu verhindern) wird auf C++ - Thread statt auf dem 'UI' (oder Main) -Thread aufgerufen. Ich nehme an, die Nachricht wird über Threads gesendet. Warum denkst du, dass es nicht funktioniert? –
Für einen Überblick (mit Links zu weiterem Lesen) wie VB6 Threading behandelt, siehe [this] (https://msdn.microsoft.com/en-us/library/aa261361 (v = vs.60) .aspx). "In-Process-Komponente" ist eine ActiveX-DLL. "Out-of-Process-Komponente" ist ein ActiveX-EXE. – BobRodes