Partager via


Classe de CWinThread

Représente un thread d'exécution dans une application.

class CWinThread : public CCmdTarget

Membres

48xz4yz9.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

CWinThread::CWinThread

Construit un objet CWinThread.

48xz4yz9.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Nom

Description

CWinThread::CreateThread

Commence l'exécution d'un objet d' CWinThread .

CWinThread::ExitInstance

Substitution de nettoyage lorsque le thread s'arrête.

CWinThread::GetMainWnd

Extrait un pointeur vers la fenêtre principale du thread.

CWinThread::GetThreadPriority

Obtient la priorité du thread actuel.

CWinThread::InitInstance

Substitution pour effectuer l'initialisation de l'instance du thread.

CWinThread::IsIdleMessage

Contrôles pour les messages spéciaux.

CWinThread::OnIdle

Substitution pour exécuter pendant le traitement des temps d'inactivité de thread spécifique.

CWinThread::PostThreadMessage

Publie un message à un autre objet d' CWinThread .

CWinThread::PreTranslateMessage

Messages de filtres pour qu'ils soient distribués aux fonctions Windows TranslateMessage et DispatchMessage.

CWinThread::ProcessMessageFilter

Certains messages intercepte d'avant qu'ils atteignent l'application.

CWinThread::ProcessWndProcException

Intercepte toutes les exceptions non gérées levées par le message et des gestionnaires de commandes du thread.

CWinThread::PumpMessage

Contient la boucle de message du thread.

CWinThread::ResumeThread

Décrémente le compteur de suspension d'un thread.

CWinThread::Run

Opération de service pour les threads avec une pompe de messages.Substitution pour personnaliser la boucle de message par défaut.

CWinThread::SetThreadPriority

Définit la priorité du thread actuel.

CWinThread::SuspendThread

Incrémente le compteur de suspension d'un thread.

48xz4yz9.collapse_all(fr-fr,VS.110).gifOpérateurs publics

Nom

Description

HANDLE de CWinThread::operator

Récupère le handle de l'objet d' CWinThread .

48xz4yz9.collapse_all(fr-fr,VS.110).gifDonnées membres publiques

Nom

Description

CWinThread::m_bAutoDelete

Spécifie si destruction de l'objet à l'abandon de thread.

CWinThread::m_hThread

Handle du thread actuel.

CWinThread::m_nThreadID

ID du thread actuel.

CWinThread::m_pActiveWnd

Pointeur vers la fenêtre principale de l'application conteneur lorsqu'un OLE serveur est actif sur place.

CWinThread::m_pMainWnd

Contient un pointeur vers la fenêtre principale de l'application.

Notes

Le thread principal de l'exécution est généralement fournie par un objet dérivé d' CWinApp; CWinApp est dérivé d' CWinThread.Les objets supplémentaires d' CWinThread permettent aux threads dans une application donnée.

Il existe deux types généraux de threads qu' CWinThread prend en charge : threads de travail et threads d'interface utilisateur.Les threads de travail n'ont pas de pompe de messages : par exemple, un thread qui effectue des calculs d'arrière-plan dans une application de feuille de calcul.Les threads d'interface utilisateur ont des messages d'une pompe de messages et de processus réception du système.CWinApp et les classes dérivés de lui sont des exemples de threads d'interface utilisateur.D'autres threads d'interface utilisateur peuvent également être dérivés directement d' CWinThread.

Les objets de la classe CWinThread existent en général pendant la durée du thread.Si vous souhaitez modifier ce comportement, définissez m_bAutoDelete à FALSE.

La classe d' CWinThread est nécessaire pour rendre votre code et MFC complètement thread-safe.Les données locales de thread utilisées par l'infrastructure pour mettre à jour les informations de thread spécifique par des objets d' CWinThread .En raison de cette dépendance sur CWinThread pour traiter les données locales de thread, un thread qui utilise MFC doit être créé par MFC.Par exemple, un thread créé par la fonction runtime _beginthread, _beginthreadex ne peut utiliser aucune API MFC.

Pour créer un thread, appelez AfxBeginThread.Il existe deux formes, selon que vous souhaitez un ouvrier ou un thread d'interface utilisateur.Si vous souhaitez un thread d'interface utilisateur, passez à AfxBeginThread un pointeur vers CRuntimeClass de votre CWinThreadclasse dérivée.Si vous souhaitez créer un thread de travail, passez à AfxBeginThread un pointeur vers la fonction de contrôle et le paramètre à la fonction de contrôle.Pour les deux threads de travail et threads d'interface utilisateur, vous pouvez spécifier les paramètres facultatifs qui modifient la priorité, la taille de la pile, les balises de création, les attributs de sécurité.AfxBeginThread retourne un pointeur vers votre nouvel objet d' CWinThread .

Au lieu d'appeler AfxBeginThread, vous pouvez construire CWinThreadobjet dérivé puis appeler CreateThread.Cette méthode à deux couches de construction est utile si vous souhaitez réutiliser l'objet d' CWinThread entre la création et les points consécutifs des opérations de thread.

Pour plus d'informations sur CWinThread, consultez les articles Multithreading avec C++ et MFC, Multithreading : Créer des threads d'interface utilisateur, Multithreading : Création de threads de travail, et Multithreading : Comment utiliser les classes de synchronisation.

Hiérarchie d'héritage

CObject

CCmdTarget

CWinThread

Configuration requise

En-tête : afxwin.h

Voir aussi

Référence

Classe de CCmdTarget

Graphique de la hiérarchie

Classe de CWinApp

Classe de CCmdTarget