INFORMACE: Not Make blokování volání z komponent STA

Překlady článku Překlady článku
ID článku: 291837 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Vytvoření blokování volání z vaší instanci objektu Component Object Model (COM), které je žijících jedním podprocesem apartment (STA), všechny ostatní instance COM, které žijí v, STA čekají instance odblokovat apartment. Pokud potřebujete blokování volání z komponenty, je doporučeno provést blokování volání z komponenty, jejíž model podprocesu je volný.

Volání je považován za blokování Pokud trvá dlouho nebo neurčitý množství času vrátit, například volá koncovému volání sítě pomocí vzdáleného volání procedur (RPC) nebo sokety.

Microsoft Visual Basic lze navíc vytvořit pouze STA aplikací a součástí, jejichž model podprocesu je Apartment nebo chybí. Tedy, měl by není blokování volání z komponenty napsané v jazyka

Další informace

Součásti, jejichž model podprocesu apartment je live v jedním podprocesem apartment (STA). Více instancí objektu COM může žijí ve stejné STA. Existuje však pouze jeden podproces (tedy název), které služby všech instancí objektu COM v dané apartment. Pokud provedete blokování volání z těchto instancí objektu COM, jsou ostatních instancí objektu COM starved, protože pouze podproces, který může služba je blokováno.

Blokování volání z komponenty má model podprocesu volno, měl by. Tato součást žije ve apartment s více podprocesy (MTA). Jako v STA můžete v MTA živé více instancí objektu COM. Více podprocesů služby jeho instancí objektu COM má však MTA. Při blokování zavolá tuto instanci objektu COM, může služba jiných podprocesů v důsledku toho ostatních instancí objektu COM. Tyto podprocesy mohou dokonce služby COM instanci objektu, který provede blokování volání. Aby komponenty, které žijí v podprocesu bezpečné MTA byste tedy měli chránit globální data s objekty synchronizace.

Instance objektu COM ze STA volá metodu na instanci objektu COM, která žije MTA a, které zavolá blokování, součást STA zablokuje není. Důvodem je, že při volání prostřednictvím serveru proxy COM provádí součást STA, server proxy odešle vypnout data MTA a COM čerpadla zprávy v STA tak, aby bylo možné provést další práci jeho apartment. (Práce STA apartment dorazí prostřednictvím zpráv systému windows.) Jiný podproces v MTA vyzvedne volání COM prostřednictvím zakázaným inzerováním a provede metodu volání instance objektu COM, které zase provede blokování volání efektivně uvedení v "čekání" stavu podprocesu. Když vrátí blokování volání metody COM dokončení jeho práce a vrátí data zpět do se zakázaným inzerováním, která vrací data na server proxy prostřednictvím zprávy systému windows. Server proxy v podprocesu STA vyzvedne data zprávy systému windows a odešle zpět k volání součásti.

Jiné straně efekt dlouhý Blokování hovorů STA je RPC komunikuje STA prostřednictvím zpráv systému windows. Blokování volání hinders, že komunikace spolu s jakoukoli jinou potenciální windows zprávu, které může daný podproces patří.

Odkazy

Další informace o COM threading klepněte na článek číslo článku databáze Microsoft Knowledge Base:
136885INFORMACE: Podprocesy OLE musí odeslání zprávy
Další informace o architektuře Distributed COM (DCOM) naleznete v následující dokumentaci Microsoft Platform Software Development Kit (SDK):
http://msdn.microsoft.com/en-us/library/ms809311.aspx

Vlastnosti

ID článku: 291837 - Poslední aktualizace: 12. července 2001 - Revize: 1.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft COM+ 2.0 Standard Edition
Klíčová slova: 
kbmt kbclientserver kbinfo kbinprocsvr kbthread KB291837 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:291837

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com