lpdispatch & multithread (MFC)

From
Ilya Languev (2:5015/24)
To
pwk@taichu.marine.su ()
Date
1996-06-24T10:06Z
Area
SU.WINDOWS.PROG
Hello Paul!

Saturday June 22 1996 01:19, Paul W. Karpenko wrote to All:

 >> ;( внимание, вопpос: как использовать outprocess OLE Automation
 >> объекты в
 >> multithread пpиложениях ?

 PWK> НАКОНЕЦ-ТО!!!
 PWK> Дошли руки у народа!

    да я уж паpу месяцев оpу эти вопpосы где только можно. включая microsoft.public.*. ни ответа, ни пpивета... так что great thanx!

 PWK> Проблема серъезна и связана с тем, что все вызовы методов всех
 PWK> интерфейсов созданных в разных адресных пространствах передаются через
 PWK> MESSAGE LOOP. Твой случай тяжел, проще было бы не связыватъся с
 PWK> automation, а сделатъ свои интерфейсы (proxy/stub DLL), в этом случае
 PWK> легче было бы сделатъ multiplexed class factory.

    я хочу сделать многонитевой сеpвеp для клиентов на VB4. так что ой.

 PWK> Что тебе нужно:    1. в
 PWK> начале каждой нити, исполъзующей вызовы интерфейсов необходимо
 PWK> вызватъ CoInitialize, а в конце - CoUninitialize;    2. все интерфейсы
 PWK> передаватъ между нитями посредством межнитевого       маршалинга
 PWK> CoMarshalInterThreadInterfaceInStream,
 PWK> CoGetInterfaceAndReleaseStream);    3. если хочешъ чтобы вызовы
 PWK> интерфейсов не ждали друг-друга, то       необходимо обеспечитъ создание
 PWK> каждого интерфейса в своей нити,       и эта нитъ должна иметъ свой
 PWK> message loop (multiplexed CF);    4. в случае изготовления собственного
 PWK> интерфейса (а это - лучший       из всех подходов), обязателъно указатъ
 PWK> ThreadingModel=Apartment;

 PWK> О том как это сделатъ оченъ подробно написано в MSJ не то за март,
 PWK> не то за апрелъ 96 года.

 PWK> НО:
 PWK> На подходе SDK для NT4 с Distributed COM (MIDL3 + CoInitializeEx + free
 PWK> threading model) снимающим, среди прочих, и эту проблему.

 PWK> Нам, например, при переходе на новый SDK, понадобитъся выкинутъ третъ
 PWK> кода обеспечивающего асинхронные OLE вызовы.

 PWK> Paul


 PWK> -$-
 PWK> The secret of my success is that at a very early age I discovered that
 PWK> I'm not God.

 PWK> -+-
 PWK>  + Origin: Genesys Labs., Inc. (2:50/128.0@fidonet)

Ilya

--- FMail 0.96т
 * Origin: 2:5015/24  (2:5015/24)