Freigeben über


AfxBeginThread

Rufen Sie diese Funktion auf, um einen neuen Thread zu erstellen.

CWinThread* AfxBeginThread(
   AFX_THREADPROC pfnThreadProc,
   LPVOID pParam,
   int nPriority = THREAD_PRIORITY_NORMAL,
   UINT nStackSize = 0,
   DWORD dwCreateFlags = 0,
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL 
);
CWinThread* AfxBeginThread(
   CRuntimeClass* pThreadClass,
   int nPriority = THREAD_PRIORITY_NORMAL,
   UINT nStackSize = 0,
   DWORD dwCreateFlags = 0,
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL 
);

Parameter

  • pfnThreadProc
    Punkte an die Steuerungsfunktion für den Arbeitsthread.Nicht sein kann NULL.Diese Funktion muss deklariert werden, wie folgt:

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    RUNTIME_CLASS eines Objekts abgeleitet von CWinThread.

  • pParam
    Zur Steuerungsfunktion zu übergebenden Parameter, wie im - Parameter gezeigt zur Funktionsdeklaration in pfnThreadProc.

  • nPriority
    Die gewünschte Priorität des Threads.Eine vollständige Prioritätenliste und eine Beschreibung verfügbaren, finden Sie unter SetThreadPriority in Windows SDK.

  • nStackSize
    Gibt die Größe in Bytes des Stapels für den neuen Thread an.Wenn 0, die Stapelgrößenstandards auf den Stapel derselben Größe als dem erstellenden Thread.

  • dwCreateFlags
    Gibt ein zusätzliches - Flag, das die Erstellung des Threads gesteuert werden.Dieses Flag kann einen von zwei Werten enthalten:

    • CREATE_SUSPENDED Anfang der Thread mit einem Unterbrechungszähler von einem.Verwendung CREATE_SUSPENDED, wenn Sie eine CWinThread-Memberdaten des Objekts, z m_bAutoDelete oder alle Member der abgeleiteten Klasse initialisieren möchten, bevor der Thread gestartet wird.Sobald die Initialisierung abgeschlossen ist, verwenden Sie CWinThread::ResumeThread Beispiel, um den zu starten.Der Thread wird nicht ausgeführt, bis CWinThread::ResumeThread aufgerufen wurde.

    • 0 Anfang der Thread unmittelbar nach Erstellung.

  • lpSecurityAttrs
    zeigt auf eine SECURITY_ATTRIBUTES-Struktur, die die Sicherheitsattribute für den Thread angibt.Wenn NULL, die gleichen Sicherheitsattribute wie der erstellende Thread verwendet wird.Weitere Informationen über diese Struktur, finden Sie unter Windows SDK.

Rückgabewert

Zeiger auf den neu erstellten Threadobjekt oder NULL, wenn ein Fehler auftritt.

Hinweise

Das erste Formular von AfxBeginThread erstellt einen Arbeitsthread.Das zweite Formular erstellt einen Thread, der möglicherweise als Benutzeroberflächenthread oder als Arbeitsthread dient.

AfxBeginThread erstellt ein neues CWinThread-Objekt, ruft seine CreateThread-Funktion auf, um die Ausführung des Threads zu starten und gibt einen Zeiger auf den Thread zurück.Während der gesamten Prozedur wird überprüft, ob alle Objekte ordnungsgemäß freigegeben werden, falls ein Teil des Erstellungsprozesses fehlschlagen sollte.Um den Thread zu beenden, rufen Sie AfxEndThread aus dem Thread auf, oder geben Sie von der Steuerungsfunktion des Arbeitsthreads zurück.

Multithreading muss durch die Anwendung aktiviert werden; andernfalls schlägt diese Funktion aus.Weitere Informationen zum Aktivieren des Multithreadings, finden Sie unter /MD, /MT, /LD (Laufzeitbibliothek verwenden) unter Visual C++-Compileroptionen an.

Weitere Informationen zu AfxBeginThread, finden Sie in Artikel Multithreading: Erstellen von Arbeitsthreads und Multithreading: Erstellen von Benutzeroberflächenthreads.

Beispiel

Im Beispiel für CSocket::Attach.

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

AfxGetThread

Konzepte

MFC-Makros und -globale Werte