CWinThread-Klasse
Stellt einen Ausführungsthread innerhalb einer Anwendung dar.
class CWinThread : public CCmdTarget
Mitglieder
Öffentliche Konstruktoren
Name |
Description |
---|---|
Erstellt ein CWinThread-Objekt. |
Öffentliche Methoden
Name |
Description |
---|---|
Startet CWinThread Ausführung eines Objekts. |
|
Überschreiben Sie, um zu bereinigen, wenn der Thread beendet wird. |
|
Ruft einen Zeiger auf das Hauptfenster für den Thread ab. |
|
Ruft die Priorität des aktuellen Threads ab. |
|
Überschreiben Sie, um von Threadinstanzinitialisierung auszuführen. |
|
Überprüfungen für Sondermeldungen. |
|
Überschreiben Sie, um des threadspezifische Leerlaufverarbeitens auszuführen. |
|
Sendet eine Nachricht an einen anderen CWinThread-Objekt. |
|
Filtert Meldungen, bevor sie an den Windows-Funktionen TranslateMessage und DispatchMessage weitergeleitet werden. |
|
Abfangbestimmte Meldungen, bevor die Anwendung erreichen. |
|
Fängt alle Ausnahmen ab, die von der Meldung und von den Befehlshandlern Threads ausgelöst werden. |
|
Enthält die Nachrichtenschleife des Threads. |
|
Dekrementiert den Unterbrechungszähler eines Threads. |
|
Steuerungsfunktion für Threads mit einer Nachrichtensystem.Überschreiben Sie, um die standardmäßige Meldungsschleife anzupassen. |
|
Legt die Priorität des aktuellen Threads fest. |
|
Inkrementiert den Unterbrechungszähler eines Threads. |
Öffentliche Operatoren
Name |
Description |
---|---|
Ruft das Handle des CWinThread-Objekts ab. |
Öffentliche Datenmember
Name |
Description |
---|---|
Gibt an, ob das Objekt der Threadbeendigung zerstört. |
|
Handle an den aktuellen Thread. |
|
ID des aktuellen Threads. |
|
Zeiger auf das Hauptfenster der Containeranwendung, wenn ein OLE-Server direkt aktiviert ist. |
|
Hält einen Zeiger auf das Hauptfenster der Anwendung. |
Hinweise
Der Hauptthread der Ausführung wird normalerweise von einem Objekt bereitgestellt, das von abgeleitet wird, CWinAppCWinApp wird von CWinThread abgeleitet.Zusätzliche CWinThread-Objekte können mehrere Threads innerhalb einer angegebenen Anwendung.
Es gibt zwei allgemeine Typen von Threads, die CWinThread unterstützt: Arbeitsthreads und Benutzeroberflächenthreads.Arbeitsthreads haben keine Haupt-Meldungsverteilschleife: beispielsweise ein Thread, der Hintergrundberechnungen in einer Arbeitsblatt-Anwendung ausführt.Benutzeroberflächenthreads verfügen die Meldungen einer Meldungsverteilschleife und des Prozesses, die vom System empfangen werden.CWinApp und Klassen, die davon abgeleitet werden, sind Beispiele von Benutzeroberflächenthreads.Andere Benutzeroberflächenthreads können direkt aus CWinThread auch abgeleitet werden.
Objekte der Klasse CWinThread sind in der Regel während der Dauer des Threads.Um dieses Verhalten zu ändern, legen Sie m_bAutoDelete zu FALSE fest.
Die CWinThread-Klasse ist erforderlich, um den Code und MFC vollständig threadsicher zu machen.Die lokalen Daten, die vom Framework verwendet werden, um threadspezifische Informationen beizubehalten, werden durch CWinThread-Objekte verwaltet.Daher muss Abhängigkeit auf CWinThread, von lokalen Daten zu bearbeiten, jeder Thread, der MFC verwendet, von MFC erstellt werden.Beispielsweise kann ein Thread, der durch die Laufzeitfunktion _beginthread-Funktion, _beginthreadex erstellt wird, kein MFC APIs verwenden.
Um einen Thread zu erstellen, rufen Sie AfxBeginThread auf.Es gibt zwei Formen, je nachdem, ob Sie einen Arbeits- oder einen Benutzeroberflächenthread soll.Wenn Sie einen Benutzeroberflächenthread möchten, führen Sie auf AfxBeginThread einen Zeiger auf CRuntimeClass aus dem CWinThread von abgeleitete Klasse.Wenn Sie einen Arbeitsthread erstellen möchten, führen Sie auf AfxBeginThread einen Zeiger an die Steuerungsfunktion und den Parameter an die Steuerungsfunktion.Für beide Arbeitsthreads und Benutzeroberflächenthreads können optionale Parameter angeben, die Priorität, Stapelgröße, Erstellungsflags und Sicherheitsattribute ändern.AfxBeginThread gibt einen Zeiger auf dem neuen CWinThread-Objekt zurück.
Anstatt, AfxBeginThread aufzurufen, können Sie CWinThread erstellen von abgeleitetes Objekt und CreateThread dann aufrufen.Dieses zweistufige Bauverfahren ist hilfreich, wenn Sie das CWinThread-Objekt zwischen aufeinander folgender Erstellung und Verlassen von Threadausführungen wiederverwenden möchten.
Weitere Informationen zu CWinThread, finden Sie in Artikel Multithreading in C++ und MFC, Multithreading: Erstellen von Benutzeroberflächenthreads, Multithreading: Erstellen von Arbeitsthreads und Multithreading: Erstellen der Synchronisierungsklassen.
Vererbungshierarchie
CWinThread
Anforderungen
Header: afxwin.h