ATL e il gestore di marshalling con modello di threading Free
La pagina degli attributi ATL la procedura guidata semplice dell'oggetto fornisce un'opzione che consente alla classe di aggregazione il gestore di marshalling con modello di threading Free (FTM).
La procedura guidata genera codice per creare un'istanza del gestore di marshalling con modello di threading Free in FinalConstruct e rilasciare tale istanza in FinalRelease.Una macro COM_INTERFACE_ENTRY_AGGREGATE viene automaticamente aggiunto alla mappa COM per assicurare che le richieste QueryInterface per IMarshal vengano gestite dal gestore di marshalling con modello di threading Free.
Il gestore di marshalling con modello di threading Free consente l'accesso diretto alle interfacce sull'oggetto da qualsiasi thread nello stesso processo, accelerante chiamate su più apartment.Questa opzione viene utilizzata per le classi che utilizzano il modello di threading.
Quando si utilizza questa opzione, le classi devono essere responsabile di thread safety dei dati.Inoltre, gli oggetti che aggrega il gestore di marshalling con modello di threading Free e la necessità di mantenere puntatori a interfaccia ottenuti da altri oggetti deve effettuare alcuni passaggi aggiuntivi per garantire che le interfacce siano correttamente eseguito il marshalling.In genere questo comporta l'archiviazione dei puntatori a interfaccia nella tabella globale (GIT) dell'interfaccia e ottenere il puntatore da GIT ogni volta che viene utilizzato.ATL fornisce la classe CComGITPtr necessarie per utilizzare i puntatori a interfaccia archiviati nel GIT.
Vedere anche
Riferimenti
When to Use the Global Interface Table
In-Process Server Threading Issues