Sdílet prostřednictvím


ATL a volné zařazování vláken

Atributy stránky ATL jednoduchý objekt Průvodce poskytuje možnost volného zřetězené Marshaller (FTM) do třídy.

Průvodce vygeneruje kód k vytvoření instance volného zřetězené Marshaller v FinalConstruct a uvolnění instanci v FinalRelease .A COM_INTERFACE_ENTRY_AGGREGATE makro je automaticky přidán do mapy COM, aby QueryInterface požadavky pro IMarshal zdarma zřetězené Marshaller zpracovávány.

Volného zřetězené Marshaller umožňuje přímý přístup rozhraní na objekt z libovolného vlákna ve stejném procesu urychlení volání mezi apartment.Tato možnost je určena pro třídy, které používají obě model podprocesu.

Při použití této možnosti přijme třídy odpovědnost za bezpečnost podprocesu jejich data.Objekty, které zdarma zřetězené Marshaller a potřebujete používat ukazatele rozhraní získané z jiných objektů navíc musí přijmout další kroky k zajištění toho, že jsou správně zařadit rozhraní.Obvykle to zahrnuje ukládání ukazatele rozhraní tabulky global interface (GIT) a získání ukazatele z GIT pokaždé, když je používán.ATL obsahuje třídu CComGITPtr vám použít uložené v GIT ukazatele rozhraní.

Viz také

Referenční dokumentace

CoCreateFreeThreadedMarshaler

IMarshal

When to Use the Global Interface Table

In-Process Server Threading Issues

Další zdroje

Koncepty knihovny ATL (Active Template Library)