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.
Jeśli masz klienta wielowątkowego, w którym wiele wątków używa tego samego wystąpienia dojścia kontekstu, dostęp do wystąpienia dojścia kontekstu jest domyślnie serializowany na serwerze. Dzięki temu menedżer serwera nie musi chronić się przed innym wątkiem z tego samego klienta, zmieniając kontekst lub kontekst uruchomiony w dół podczas wysyłania wywołania. Jednak w niektórych przypadkach serializacja może mieć wpływ na wydajność.
Rozważ następujące kwestie: dwa wątki klienta wywołują zdalne wywołanie procedury, które nie zmienia stanu kontekstu (na przykład wywołanie po prostu uzyskuje z niego pewne wartości). Takie wywołania nie muszą być serializowane.
W takich sytuacjach system Windows XP oferuje model serializacji trybu mieszanego, w którym każda metoda może być zadeklarowana jako wyłączny lub udostępniony dostęp do uchwytu kontekstu. Aby uzyskać szczegółowe informacje, zobacz context_handle_serialize i context_handle_noserialize.
W wersjach systemu Windows wcześniejszych niż Windows XP jedynym sposobem umożliwienia współbieżnego dostępu do dojścia kontekstu jest wywołanie RpcSsDontSerializeContext funkcji zezwalającej na wysyłanie wielu wywołań na jednym dojściu kontekstu. Wywołanie funkcji RpcSsDontSerializeContext nie powoduje całkowitego wyłączenia serializacji; gdy wystąpi uruchamianie kontekstu, procedury uruchamiania kontekstu są uruchamiane tylko wtedy, gdy wszystkie zaległe żądania klientów zostały ukończone. Wywołanie RpcScDontSerializeContext wpływa na cały proces i nie jest przywracane. Używanie RpcScDontSerializeContext w systemie Windows XP i nowszych wersjach nie jest zalecane; sprawia, że kod serwera jest bardzo skomplikowany podczas niezawodnego radzenia sobie z warunkami wyścigu nieodłącznymi dla całkowicie nies serializowanych środowisk.