|
|
|
COM и многопоточность
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! У меня проблема. Есть COM-класс, в котором существует метод, допустим, производящий вычисления. Предположим, есть два потока. В каждом из них, я создаю экземпляр класса. Упрощенная версия кода: Код: plaintext 1. 2. 3. 4. 5. Мне нужно, чтобы метод выполнялся паралельно в двух потоках. Но реально, этот метод выполняется не за счет созданного мной потока, а за счет другого потока (в ProcessExplorer это поток из ole32.dll). Собственно, вопрос: как заставить, выполняться метод псевдопараллельно, чтобы нагрузка равномерно распределялась между двумя потоками?? А сейчас, мои потоки простаивают, а код метода выполняется последовательно в другом потоке, а не параллельно в моих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2006, 13:19 |
|
||
|
COM и многопоточность
|
|||
|---|---|---|---|
|
#18+
По умолчанию (посмотри в реестре свой COM), модель COM не многопотоковая, т.е. если разные потоки вызывают одну процедуру в COM, то они становятся в очередь. Поэтому и критические дни, тьфу - секции там не нужны. Сделай COM c многопотоковой моделью-аппартаментом. Хотя проблем огребёшь IMHO. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 13:57 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=376&tid=2032128]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 368ms |

| 0 / 0 |
