Partager via


AfxBeginThread

Appelez cette fonction pour créer un nouveau thread.

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 
);

Paramètres

  • pfnThreadProc
    Pointe vers l'opération de service pour le thread de travail.Ne peut pas être null.Cette fonction doit être déclarée comme suit :

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    RUNTIME_CLASS d'un objet dérivé d' CWinThread.

  • pParam
    Paramètre à passer à la fonction de contrôle comme indiqué dans le paramètre à la déclaration de fonction dans pfnThreadProc.

  • nPriority
    La priorité souhaitée du thread.Pour une liste complète et une description des priorités disponibles, consultez l' SetThreadPriority dans Kit de développement logiciel Windows.

  • nStackSize
    Spécifie la taille en octets de la pile pour le nouveau thread.Si 0, les valeurs par défaut de taille de la pile à la pile de même taille qu'un thread sa création.

  • dwCreateFlags
    Spécifie une balise supplémentaire qui contrôle la création du thread.Cette balise peut contenir une de deux valeurs :

    • Début deCREATE_SUSPENDED le thread avec un compteur de suspension d'un.Utilisation CREATE_SUSPENDED si vous souhaitez initialiser toutes les données membres de l'objet d' CWinThread, telles que m_bAutoDelete ou tous les membres de votre classe dérivée, avant que le thread commence à exécuter.Une fois que l'initialisation est terminée, utilisez CWinThread::ResumeThread pour démarrer l'exécution de thread.Le thread ne s'exécutera pas jusqu'à ce qu' CWinThread::ResumeThread soit appelé.

    • Début de0 le thread immédiatement après la création.

  • lpSecurityAttrs
    Pointe vers une structure d' SECURITY_ATTRIBUTES qui spécifie les attributs de sécurité du thread.Si null, les mêmes attributs de sécurité que le thread de création est utilisé.Pour plus d'informations sur cette structure, consultez Kit de développement logiciel Windows.

Valeur de retour

Pointeur vers l'objet thread de création récente, ou null si une erreur se produit.

Notes

La première forme d' AfxBeginThread crée un thread de travail.La deuxième formulaire crée un thread qui peut servir comme thread d'interface utilisateur ou de threads de travail.

AfxBeginThread crée un nouvel objet d' CWinThread, appelle la fonction d' CreateThread pour commencer à exécuter le thread, et retourne un pointeur vers le thread.Des vérifications sont effectuées tout au long de la procédure pour s'assurer que tous les objets sont libérés correctement au cas où une partie de la création échouerait.Pour terminer le thread, appelez AfxEndThread du thread, ou retournez la valeur de la fonction de contrôle du thread de travail.

La fonction multithread doit être activé par l'application ; sinon, cette fonction échoue.Pour plus d'informations sur activer la fonction multithread, reportez-vous à /MD, /MT, /LD (Utiliser la bibliothèque Runtime) sous des options du compilateur Visual C++.

Pour plus d'informations sur AfxBeginThread, consultez les articles Fonction multithread : Création de threads de travail et Fonction multithread : Créer des threads d'interface utilisateur.

Exemple

Consultez l'exemple pour CSocket::Attach.

Configuration requise

En-tête : afxwin.h

Voir aussi

Référence

AfxGetThread

Concepts

Macro MFC et Globals