Поделиться через


ATL и упаковщик в режиме свободного потока

Страница атрибутов мастера объекта библиотеки ATL простого предоставляет параметр, позволяющий класс для статистической обработки упаковщиком свободных потоков (FTM).

Мастер создает код для создания экземпляра модуля маршалинга продетого потоками свободеном в FinalConstruct и освобождение этот экземпляр в FinalRelease. Макрос COM_INTERFACE_ENTRY_AGGREGATE автоматически добавлять в сопоставление модели COM, чтобы убедиться, что запросы QueryInterface для IMarshal корректируются упаковщик продетым потоками свободеном.

Упаковщик свободных потоков обеспечивает прямой доступ к интерфейсам в объекте из любого потока в один и тот же быстро процесса, передавая - вверх вызовов крест- подразделения. Этот параметр предназначен для классов, которые используют оба потоковая модель.

При использовании этого параметра классы должны принять ответственность за для потокобезопасности они данных. Кроме того, возражает, которая агрегирует упаковщик свободных потоков и необходимости использовать указатели интерфейса, полученные из других объектов должна выполнить лишние, чтобы обеспечить правильное маршалироватьы интерфейсы. Обычно это включает хранения указателей интерфейса в глобальной таблице интерфейса (GIT) и получение указатель GIT каждый раз, когда оно будет использоваться. Библиотеки ATL предоставляет класс CComGITPtr, помогающие использовать указатели интерфейса, хранящихся в GIT.

См. также

Ссылки

CoCreateFreeThreadedMarshaler

IMarshal

When to Use the Global Interface Table

In-Process Server Threading Issues

Другие ресурсы

Основные понятия активной библиотеки шаблонных классов (ATL)