Re: Множество клиентов на один сервер.
От: serg_mo  
Дата: 05.11.01 17:11
Оценка:
Здравствуйте Аноним, Вы писали:

А>На сервере есть несколько операций, которые выполняются очень долго, поэтому нужно реализовать некоторое подобие многопоточноти. Как я понимаю, можно использовать Free-Threaded Model (MTA), но чего-то оно не получается. Точнее, если у меня сервер с виде DLL, то несколько потоков, созданных в данном процессе без проблем выполняют параллельно одни и те же методы интерфейса. Но у меня сервер реализован в виде EXE и поэтому каждый клиент — это другой процесс и вызовы серверов почему-то синхронизируется (то есть пока метод выполняется одним из клиентов, то другой клиент не может даже указатель на интерфейс получить). В чем может быть дело?

А>P.S. Может написать новую фабрику классов и каждый раз при запросе интерфейса создавать новый экземпляр объекта?

Как на сервере происходит инициализация COM?
Для того, чтобы реализовать Free-Threaded сервер в EXE,
необходимо инициализировать COM строкой
CoInitializeEx(COINIT_MULTITHREADED);

Надеюсь, это поможет.