Wie MFC-Schnittstelle-Threads machen
Ein Thread ist ein quasi-unabhängigen Programm-Segment, die innerhalb des Programms Ausführung Speicherplatz befindet. Die Microsoft Foundation Class (MFC)-Bibliothek bietet die CWinThread-Klasse für die Herstellung von Code threadsicher. CWinThread unterstützt Arbeitsthreads und Benutzeroberflächenthreads. Im Gegensatz zu Worker-Threads ist geeignet für die Hintergrundverarbeitung Benutzeroberflächenthreads verwenden Meldungszuordnungen und nutzerorientierten Nachrichten verarbeiten. Dieser Artikel konzentriert sich auf die Erstellung und Verwendung von Benutzeroberflächenthreads.
Anweisungen
1 Starten Sie Microsoft Visual Studio, und erstellen Sie ein neues Projekt. Um ein neues MFC-Projekt aus der Menüleiste zu erstellen, klicken Sie auf "Datei" > "Neu". Klicken Sie auf die Registerkarte "Projekte" und wählen Sie "MFC-AppWizard(exe)." Geben Sie einen Projektnamen in das Bearbeitungsfeld "Projektname" und drücken Sie "OK". Wählen Sie "Einfaches Dokument" und "Document/View-Architektur Unterstützung" in der zweiten Seite des Assistenten, und drücken Sie "Fertig stellen" und "OK".
2 Erstellen Sie eine Threadklasse mithilfe der Klassen-Assistent. Klicken Sie in der Menüleiste "Ansicht" > "ClassWizard" oder drücken Sie einfach STRG + W. Wählen Sie "Klasse hinzufügen" > "Neu". Geben Sie "CThread" im Eingabefeld "Name" und wählen Sie aus "CWinThread" für "Basisklasse" im Dropdown-Menü. Drücken Sie zweimal "OK". Jetzt hat der Klassen-Assistent Thread "h" und "Cpp" Dateien erstellt, die Deklaration und Definition von CThread, bzw. zu speichern.
3 Der CThread-Klasse für die Handhabung von Nachrichten eine Member-Funktion hinzufügen. Klicken Sie im linken Fensterbereich auf "Datei-Ansicht", erweitern Sie das Verzeichnis "Header" und doppelklicken Sie "Thread.h", sodass es im Quellcode-Editor geöffnet wird. Entfernen Sie "CThread();" unter "geschützt:" durch Ausschneiden und einfügen, die Linie unter "öffentliche:". Fügen Sie "void MsgHandler (WPARAM, LPARAM)", die Definition der Funktion in die nächste Zeile. Anschließend erweitern Sie das Verzeichnis "Quelldateien" und doppelklicken Sie "Thread.cpp", sodass es im Quellcode-Editor geöffnet wird. Hängen Sie die Funktionsdefinition, wie unten dargestellt:
void MyThread::MsgHandler (WPARAM, LPARAM) { Nachricht-Verarbeitungscode } |
4 Integrieren Sie die CThread-Klasse in andere MFC-Projekte. Wenn Sie eine Klasse von CToolBar namens CModifiedToolBar abgeleitet haben, würde Sie "#include"Thread.h"am oberen Rand der Datei"CModifiedToolBar.cpp". eingefügt.
5 Objekte der Klasse CThread in Ihrem Programm wie folgt:
CModifiedToolBar.cpp CThread * pThread; pThread = neue CThread(); pThread -> CreateThread(); pThread -> SetThreadPriority(THREAD_PRIORITY_ABOVE_NORMAL); pThread -> Run(); pThread -> SuspendThread(); und so weiter. |
Tipps & Warnungen
- Sie können auch einen Benutzeroberflächen-Thread mit der Funktion von AfxBeginThread beginnen.
- Kompilieren Sie den Code in Schritt 5 nicht; Es sollte eigentlich nur zu demonstrieren.