Specifica di un modello di threading per un progetto (ATL)
Per specificare il modello di threading di un progetto ATL sono disponibili le macro seguenti:
Macro | Linee guida per l'uso |
---|---|
_ATL_SINGLE_THREADED | Definire se tutti gli oggetti usano il modello a threading singolo. |
_ATL_APARTMENT_THREADED | Definire se uno o più oggetti usano il threading apartment. |
_ATL_FREE_THREADED | Definire se uno o più oggetti usano threading libero o neutro. Il codice esistente può contenere riferimenti alla macro equivalente _ATL_MULTI_THREADED. |
Se non si definisce alcuna di queste macro per il progetto, _ATL_FREE_THREADED sarà attiva.
Le macro influiscono sulle prestazioni di runtime come indicato di seguito:
Specificare la macro che corrisponde agli oggetti del progetto può migliorare le prestazioni di runtime.
Se si specifica un livello superiore di macro, ad esempio se si specifica _ATL_APARTMENT_THREADED quando tutti gli oggetti sono a thread singolo, le prestazioni di runtime risulteranno leggermente ridotte.
Se ad esempio si specifica un livello inferiore di macro, se si specifica _ATL_SINGLE_THREADED quando uno o più oggetti usano il threading apartment o il threading libero, l'applicazione potrebbe non riuscire in fase di esecuzione.
Per una descrizione dei modelli di threading disponibili per un oggetto ATL, vedere Opzioni, Creazione guidata oggetti semplici ATL.