2016-08-26 5 views
2

Dies ist ein Beispiel-Snippet in VC++ mit MFC und ich möchte einen Worker-Thread verwenden, um eine Aufgabe abzuschließen und das Ergebnis an ein Steuerelement senden. Welche ist wünschenswert oder irgendeine andere Arbeit?Verwendung von Worker-Threads in MFC

+0

Mögliches Duplikat von [MFC: Zugriff auf GUI von einem anderen Thread?] (Http://stackoverflow.com/questions/18462347/mfc-accessing-gui-from-another-thread) –

+0

Nicht doppelt. Früherer Thread betraf nur den Fall, dass ich und die Advisories die Verwendung von Worker-Thread im MFC-GUI-Thread verbaten. Fall II meiner Abfrage versucht, eine Arbeit um die Situation zu erkunden, indem eine asynchrone Prioritätswarteschlange verwendet und Haupt-GUI-Thread Verarbeitung der Post-Nachrichten ermöglicht – seccpur

Antwort

1

Es ist im Allgemeinen eine gute Idee (oder erforderlich), von anderen Threads als dem Hauptthread direkt auf die GUI zuzugreifen. MFC könnte dies bestätigen oder nicht, je nachdem wie konsistent es implementiert ist. Siehe auch this answer. Das schließt Ihren ersten Fall aus.

Die Verwendung von Nachrichtenwarteschlangen ist der sichere und korrekte Weg, dies zu tun. Siehe auch this thread zum Aktualisieren der Benutzeroberfläche von einem anderen Thread.