Какво се случва, ако използвам маршалиран указател на COM интерфейс в нишката за създаване на обект?

Разглеждам използването на глобалната интерфейсна таблица. Разбирам, че когато извикате GetInterfaceFromGlobal() от друга STA нишка, получавате прокси към оригиналния указател на интерфейса. Проксито е отговорно за предаването на контрола на нишката за създаване на обект.

Какво ще стане, ако имам само една нишка и извикам GetInterfaceFromGlobal() в тази единствена нишка, т.е. нишката, създаваща обект, и след това използвам върнатия интерфейсен указател (всъщност прокси) точно както използвам оригиналния интерфейсен указател? С други думи, използваем ли е проксито (което се предполага, че се използва от друга нишка) за основната нишка?

И какво, ако използвам глобалната интерфейсна таблица в MTA нишки за MTA обект? Ще работи ли или ще се повреди?

Благодаря предварително.


person Charlie    schedule 19.06.2011    source източник


Отговори (1)


Ще получите обратно своя собствен указател, тъй като не е необходим прокси.

person Hans Passant    schedule 19.06.2011