Страницы

Поиск по вопросам

среда, 27 февраля 2019 г.

Что такое апартаменты COM

Зачем они вообще нужны? Каких видов бывают? И куда их прикладывать?


Ответ

COM-апартаменты -- это модель работы с потоками в COM. Она родилась как способ безопасного использования COM-объектов, предназначенных только для однопоточного использования, в многопоточном окружении.
Есть два типа апартаментов:
STA (single-thread apartment, однопоточные апартаменты) MTA (multiple-thread apartment, многопоточные апартаменты)
Преимуществом MTA-апартаментов является потенциально более высокая производительность за счет использования нескольких потоков.
Внутри одного процесса м.б. несколько STA-апартаментов и один MTA-апартамент. Каждый COM-объект создается либо в STA, либо в MTA-апартаменте. При это объект, созданный в одном типе апартамента, не может быть напрямую вызван из апартамента другого типа. Для этого нужно использовать прокси.
Время жизни объекта ограничено временем жизни апартамента, в котором он находится. Каждый COM-компонент содержит объявление, в какой модели он может работать. При этом важно помнить, что если вы собираетесь работать в MTA-апартаменте, то должны обеспечить синхронизацию, в то время как для STA заботиться об этом не нужно.

Комментариев нет:

Отправить комментарий