Sdílet prostřednictvím


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

Stránka Atributy Průvodce jednoduchým objektem ATL poskytuje možnost, která vaší třídě umožňuje agregovat volný zařazovač vláken (FTM).

Průvodce vygeneruje kód pro vytvoření instance bezplatného zařazování vláken a FinalConstruct uvolnění této instance v FinalRelease. Do mapy MODELU COM se automaticky přidá COM_INTERFACE_ENTRY_AGGREGATE makro, aby bylo zajištěno, že QueryInterface žádosti o IMarshal zpracovává volný zařazovač s vlákny.

Volný zařazovač s vlákny umožňuje přímý přístup k rozhraním na objektu z libovolného vlákna ve stejném procesu, čímž se urychlí volání křížového bytu. Tato možnost je určená pro třídy, které používají model obou vláken.

Při použití této možnosti musí třídy převzít odpovědnost za bezpečnost vláken svých dat. Kromě toho musí objekty, které agregují volný zařazovač s vlákny a potřebují používat ukazatele rozhraní získané z jiných objektů, aby bylo zajištěno správné zařazování rozhraní. Obvykle se to týká uložení ukazatelů rozhraní do tabulky globálního rozhraní (GIT) a získání ukazatele z GIT při každém použití. ATL poskytuje třídu CComGITPtr , která vám pomůže používat ukazatele rozhraní uložené v GITu.

Viz také

Koncepty
CoCreateFreeThreadedMarshaler
IMarshal
Kdy použít tabulku globálního rozhraní
Problémy s vlákny na procesových serverech