На этом шаге мы рассмотрим однопоточные отделения.
В однопоточном отделении (STA) имеется только один поток, занимающиийся созданием и вызовом СОМ-объектов. Это гарантирует эффективную синхронизацию объектов такого отделения.
По сравнению с однопоточной моделью производительность поддерживающих STA компонентов выше, поэтому эта модель позволяет писать более эффективный код. Пока в одном STA поток ожидает завершения операции, промежуточные операции выполняются в другом STA.
STA создается потоком при вызове API-функции CoInitializeEx() с параметром COINIT_APARTMENTTHREADED. Поток, инициализированный как STA, называется STA-потоком. Созданные им СОМ-объекты доступны только ему. Это предохраняет от одновременного обращения к объектам из нескольких потоков.
На следующем шаге мы рассмотрим синхронизацию потоков.