powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / COM и многопоточность
2 сообщений из 2, страница 1 из 1
COM и многопоточность
    #33482836
Ryan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!


У меня проблема. Есть COM-класс, в котором существует метод, допустим, производящий вычисления. Предположим, есть два потока. В каждом из них, я создаю экземпляр класса.

Упрощенная версия кода:
Код: plaintext
1.
2.
3.
4.
5.
CoInitializeEx(NULL, COINIT_MULTITHREADED);
IMyClassPtr obj;
obj.CreateInstance(...);
obj->MyMethod();
obj.Release();
CoUnitialize();



Мне нужно, чтобы метод выполнялся паралельно в двух потоках. Но реально, этот метод выполняется не за счет созданного мной потока, а за счет другого потока (в ProcessExplorer это поток из ole32.dll).

Собственно, вопрос: как заставить, выполняться метод псевдопараллельно, чтобы нагрузка равномерно распределялась между двумя потоками?? А сейчас, мои потоки простаивают, а код метода выполняется последовательно в другом потоке, а не параллельно в моих.
...
Рейтинг: 0 / 0
COM и многопоточность
    #33484965
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По умолчанию (посмотри в реестре свой COM), модель COM не многопотоковая, т.е. если разные потоки вызывают одну процедуру в COM, то они становятся в очередь. Поэтому и критические дни, тьфу - секции там не нужны.
Сделай COM c многопотоковой моделью-аппартаментом. Хотя проблем огребёшь IMHO.
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / COM и многопоточность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]