Wie i-Signal von einem Worker-Thread zu einem anderen Arbeitsthread senden kann? Der erste Thread wird auf das Signal vom zweiten Thread warten, nachdem der erste Thread seine Jobs ausgeführt hat. Wie kann ich das umsetzen?Sendesignal zwischen zwei untergeordneten Thread in MFC
Antwort
Mit „ein Signal senden“ Ich nehme an, du meinst nicht (Windows) Nachricht senden. Zu komplizierte Implementierung für etwas wirklich Einfaches. Ihr (2.) Worker-Thread sollte eine Nachrichtenschleife erstellen und nach einer (benutzerdefinierten) Nachricht suchen? Ziemlich übertrieben. Obwohl Worker-Threads natürlich Nachrichten-Loops erstellen können, ist das sehr ungewöhnlich.
Bessere Nutzung der Synchronisation und der richtige Objekttyp hierfür ist ein „Event“ (ein einfaches Objekt, das entweder in signalisiert oder nicht signalisierte Zustand sein kann). Der 2. Thread sollte darauf warten, und der 1. Thread muss auf den signalisierten Zustand setzen, um den 2. zu benachrichtigen, um seine Aufgabe zu erledigen (dies bedeutet "Senden des Signals").
* "Obwohl Worker-Threads natürlich Message-Loops erstellen können, ist das sehr ungewöhnlich." * - Nein, nicht wirklich. Das ist ** sehr üblich. Jeder Worker-Thread, der ein COM-Objekt hostet, das nur mit der STA kompatibel ist, führt eine Nachrichtenschleife aus. Tatsächlich muss jeder (Worker-) Thread, der in der STA initialisiert wurde, eine Nachrichtenschleife haben. Die Synchronisation durch Nachrichtenübermittlung ist als solche sehr, sehr üblich. – IInspectable
- 1. Umgang mit untergeordneten Fenstermeldungen in MFC
- 2. Kommunikation zwischen zwei untergeordneten Fragmenten in einem verschachtelten Fragment
- 3. C++ MFC - Daten zwischen MFC DLL und WTL exe teilen?
- 4. Wie töte ich einen MFC-Thread?
- 5. MFC: Emdedded untergeordneten Dialogfeld wird nicht im übergeordneten Dialogfeld angezeigt
- 6. Wiederverwendbarer Hintergrundthread in MFC
- 7. java: warum main thread wartet auf untergeordneten thread zu beenden
- 8. Stoppen Sie das Video in MFC mit Thread
- 9. MFC: Fehlerbehebung, welche Thread für einen Absturz verantwortlich ist
- 10. Datenübertragung zwischen untergeordneten Registerkarten in einem Registerkartencontroller
- 11. Unterschied zwischen zwei Möglichkeiten, eine Thread-Safe-Klasse zu definieren
- 12. Unterschied zwischen Thread # run und Thread # wakeup?
- 13. Qt Thread zwei Argumente
- 14. Unterschied zwischen Thread und Handler
- 15. So synchronisieren Sie zwei Listensteuerelemente vertikal in MFC
- 16. Daten zwischen zwei Threads in Python Austausch
- 17. So erstellen Sie einen untergeordneten Thread oder Worker-Thread in Microsoft-Bot-Anwendung
- 18. fork() und wait() mit zwei untergeordneten Prozessen
- 19. Angular2 - routerConfig Unterrouting zwischen untergeordneten Komponenten
- 20. Aurelia: Wie navigiere ich zwischen untergeordneten Routen?
- 21. Übergeben von Daten zwischen untergeordneten Komponenten
- 22. Hervorheben von zwei untergeordneten Steuerelementen gleichzeitig
- 23. NativeScript StackLayout mit Lücke zwischen untergeordneten Elementen
- 24. Objekt zwischen 2 untergeordneten Komponenten teilen
- 25. Spaltenauswahl in ListView (MFC)
- 26. MFC Messfunktion in Millisekunden
- 27. Führen Sie zwei URL mit zwei Thread-Namen in C#
- 28. Java-Thread-Migration zwischen Dual-Socket-Prozessor
- 29. Nachrichten zwischen zwei Prozessen übergeben
- 30. Zwei-Wege-Kommunikation zwischen Geräten
'Postthreadmessage()' ist eine Möglichkeit. –
'WaitForSingleObject',' SetEvent' –
@JoeWillcoxson: [Warum von Postthreadmessage geschrieben haben Nachrichten verschwinden?] (Https://blogs.msdn.microsoft.com/oldnewthing/20090930-00/?p=16553) Außerdem stehen die Chancen, dass Sie auch in die entgegengesetzte Richtung synchronisieren möchten, also suchen Sie nach dem Äquivalent von 'SendThreadMessage' ([welches nicht existiert] (https://blogs.msdn.microsoft.com/oldnewthing/20081223- 00 /? P = 19743)). – IInspectable