Проблема. Почему при создании exe сервера с Threading Model = Free. Вызовы клиентов выстраиваются в очередь как при апартаментной модели, или что-то не так делаем?
Эксперимент. Создали exe-сервер в MS Visual Studio Net как MFC-application. Создали COM-объект, поточную модель обозначили как free. Создали единственную функцию touch(LONG period), которая просто ждет period миллисекунд.
Создали клиента как MFC-application. в клиенте создали 2 потока в каждом из которых вызываем CoinitializeEx(NULL, COINIT_MULTITHREADED). создаем COM-объект как локальный сервер, вызываем функцию touch, отмечаем время входа и время выхода, получается, что пока один поток не выйдет из touch второй туда не зайдет.