Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
COM zapewnia sposób, w którym każdy apartament w procesie może uzyskać dostęp do interfejsu zaimplementowanego na obiekcie w dowolnym innym apartamencie w procesie. Odbywa się to za pośrednictwem interfejsu IGlobalInterfaceTable. Ten interfejs ma trzy metody, które umożliwiają wykonanie następujących czynności:
- Zarejestruj interfejs jako interfejs globalny (dla całego procesu).
- Pobierz wskaźnik do tego interfejsu z dowolnego innego mieszkania za pośrednictwem pliku cookie.
- Odwołaj globalną rejestrację interfejsu.
Interfejs IGlobalInterfaceTable jest wydajnym sposobem przechowywania wskaźnika interfejsu w lokalizacji pamięci, do której można uzyskać dostęp z wielu apartamentów w procesie, takich jak zmienne globalne dla procesu i obiekty zwinne (wolnowątkowe, marshallowane obiekty) zawierające wskaźniki interfejsu do innych obiektów.
Zwinny obiekt nie jest świadomy podstawowej infrastruktury COM, w której działa; innymi słowy, w jakim apartment, kontekście, i na jakim wątku są wykonywane. Obiekt może być trzymany w interfejsach specyficznych dla mieszkania lub kontekstu. Z tego powodu wywoływanie tych interfejsów w dowolnym miejscu, gdzie wykonywany jest komponent agile, może nie zawsze działać prawidłowo. Tabela interfejsu globalnego pozwala uniknąć tego problemu, gwarantując, że używany jest prawidłowy serwer proxy (lub bezpośredni wskaźnik) do obiektu na podstawie miejsca wykonywania obiektu agile.
Notatka
Tabela interfejsu globalnego nie jest przenośna przez granice procesów ani maszyn, więc nie można jej używać zamiast normalnego mechanizmu przekazywania parametrów.
Aby uzyskać informacje na temat tworzenia i używania globalnej tabeli interfejsów, zobacz następujące tematy:
Tematy pokrewne
-
problemy z wątkami serwera In-Process