Spécifier le modèle de thread du projet
Les macros suivantes sont disponibles pour spécifier le modèle de thread d'un projet ATL :
Macro |
Directives pour l'utilisation |
---|---|
_ATL_SINGLE_THREADED |
Définissez si tous les objets utilisent le modèle monothread. |
_ATL_APARTMENT_THREADED |
Définissez si un ou plusieurs de vos objets utilisent le thread cloisonné (STA). |
_ATL_FREE_THREADED |
Définissez si un ou plusieurs de votre utilisation d'objets ou libre de threads neutre.Le code existant peut contenir des références à un _ATL_MULTI_THREADEDéquivalent. |
Si vous ne définissez pas l'un de ces macros pour votre projet, le _ATL_FREE_THREADED sera appliquée.
Les macros affectent les performances d'exécution comme suit :
Spécifier la macro qui correspond aux objets dans votre projet peut améliorer les performances d'exécution.
Spécifier un niveau supérieur de la macro, par exemple si vous spécifiez le _ATL_APARTMENT_THREADED lorsque tous les objets sont thread unique, dégradera légèrement les performances d'exécution.
Spécifier un niveau inférieur de la macro, par exemple, si vous spécifiez le _ATL_SINGLE_THREADED lorsqu'un ou plusieurs de vos objets utilisent le thread cloisonné (STA) ou le modèle de thread libre, peut générer votre application d'échouer au moment de l'exécution.
Consultez l' Options, l'Assistant Objet simple ATL pour une description des modèles de thread disponibles pour un objet ATL.