Wie MFC-Schnittstelle-Threads machen

November 29

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.