Classe de CWinThread
Représente un thread d'exécution dans une application.
class CWinThread : public CCmdTarget
Membres
Constructeurs publics
Nom |
Description |
---|---|
Construit un objet CWinThread. |
Méthodes publiques
Nom |
Description |
---|---|
Commence l'exécution d'un objet d' CWinThread . |
|
Substitution de nettoyage lorsque le thread s'arrête. |
|
Extrait un pointeur vers la fenêtre principale du thread. |
|
Obtient la priorité du thread actuel. |
|
Substitution pour effectuer l'initialisation de l'instance du thread. |
|
Contrôles pour les messages spéciaux. |
|
Substitution pour exécuter pendant le traitement des temps d'inactivité de thread spécifique. |
|
Publie un message à un autre objet d' CWinThread . |
|
Messages de filtres pour qu'ils soient distribués aux fonctions Windows TranslateMessage et DispatchMessage. |
|
Certains messages intercepte d'avant qu'ils atteignent l'application. |
|
Intercepte toutes les exceptions non gérées levées par le message et des gestionnaires de commandes du thread. |
|
Contient la boucle de message du thread. |
|
Décrémente le compteur de suspension d'un thread. |
|
Opération de service pour les threads avec une pompe de messages.Substitution pour personnaliser la boucle de message par défaut. |
|
Définit la priorité du thread actuel. |
|
Incrémente le compteur de suspension d'un thread. |
Opérateurs publics
Nom |
Description |
---|---|
Récupère le handle de l'objet d' CWinThread . |
Données membres publiques
Nom |
Description |
---|---|
Spécifie si destruction de l'objet à l'abandon de thread. |
|
Handle du thread actuel. |
|
ID du thread actuel. |
|
Pointeur vers la fenêtre principale de l'application conteneur lorsqu'un OLE serveur est actif sur place. |
|
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
CWinThread
Configuration requise
En-tête : afxwin.h