IExecutionContext — Struktura
Interfejs kontekstu wykonywania, który można uruchomić na danym procesorze wirtualnym i być przełączony kontekst kooperatywne.
Składnia
struct IExecutionContext;
Członkowie
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
IExecutionContext::D ispatch | Metoda wywoływana, gdy serwer proxy wątku rozpoczyna wykonywanie określonego kontekstu wykonywania. Powinna to być główna rutyna procesu roboczego dla harmonogramu. |
IExecutionContext::GetId | Zwraca unikatowy identyfikator kontekstu wykonywania. |
IExecutionContext::GetProxy | Zwraca interfejs do serwera proxy wątku, który wykonuje ten kontekst. |
IExecutionContext::GetScheduler | Zwraca interfejs harmonogramu, do którego należy ten kontekst wykonywania. |
IExecutionContext::SetProxy | Kojarzy serwer proxy wątku z tym kontekstem wykonywania. Skojarzony serwer proxy wątku wywołuje tę metodę bezpośrednio przed rozpoczęciem wykonywania metody kontekstu Dispatch . |
Uwagi
Jeśli implementujesz niestandardowy harmonogram, który interfejsy za pomocą usługi Resource Manager środowiska uruchomieniowego współbieżności, musisz zaimplementować IExecutionContext
interfejs. Wątki utworzone przez usługę Resource Manager wykonują pracę w imieniu harmonogramu, wykonując metodę IExecutionContext::Dispatch
.
Hierarchia dziedziczenia
IExecutionContext
Wymagania
Nagłówek: concrtrm.h
Przestrzeń nazw: współbieżność
IExecutionContext::D ispatch — Metoda
Metoda wywoływana, gdy serwer proxy wątku rozpoczyna wykonywanie określonego kontekstu wykonywania. Powinna to być główna rutyna procesu roboczego dla harmonogramu.
virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;
Parametry
pDispatchState
Wskaźnik do stanu, w którym jest wysyłany ten kontekst wykonywania. Aby uzyskać więcej informacji na temat stanu wysyłania, zobacz DispatchState.
IExecutionContext::GetId — Metoda
Zwraca unikatowy identyfikator kontekstu wykonywania.
virtual unsigned int GetId() const = 0;
Wartość zwracana
Unikatowy identyfikator liczb całkowitych.
Uwagi
Należy użyć metody GetExecutionContextId
, aby uzyskać unikatowy identyfikator obiektu, który implementuje IExecutionContext
interfejs, przed użyciem interfejsu jako parametru do metod dostarczonych przez usługę Resource Manager. Oczekuje się, że po wywołaniu funkcji zostanie zwrócony ten sam identyfikator GetId
.
Identyfikator uzyskany z innego źródła może spowodować niezdefiniowane zachowanie.
IExecutionContext::GetProxy — Metoda
Zwraca interfejs do serwera proxy wątku, który wykonuje ten kontekst.
virtual IThreadProxy* GetProxy() = 0;
Wartość zwracana
Interfejs IThreadProxy
. Jeśli serwer proxy wątku kontekstu wykonywania nie został zainicjowany za pomocą wywołania metody SetProxy
, funkcja musi zwrócić wartość NULL
.
Uwagi
Usługa Resource Manager wywoła metodę SetProxy
w kontekście wykonywania z IThreadProxy
interfejsem jako parametrem przed wprowadzeniem Dispatch
metody w kontekście . Ten argument powinien być przechowywany i zwracany przy wywołaniach do metody GetProxy()
.
IExecutionContext::GetScheduler — Metoda
Zwraca interfejs harmonogramu, do którego należy ten kontekst wykonywania.
virtual IScheduler* GetScheduler() = 0;
Wartość zwracana
Interfejs IScheduler
.
Uwagi
Przed użyciem go jako parametru do metod dostarczonych przez usługę Resource Manager wymagane jest zainicjowanie kontekstu wykonywania przy użyciu prawidłowego IScheduler
interfejsu.
IExecutionContext::SetProxy — Metoda
Kojarzy serwer proxy wątku z tym kontekstem wykonywania. Skojarzony serwer proxy wątku wywołuje tę metodę bezpośrednio przed rozpoczęciem wykonywania metody kontekstu Dispatch
.
virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;
Parametry
pThreadProxy
Interfejs serwera proxy wątku, który ma wprowadzić metodę Dispatch
w tym kontekście wykonywania.
Uwagi
Oczekuje się, że zapiszesz parametr pThreadProxy
i zwrócisz go przy wywołaniu GetProxy
metody . Usługa Resource Manager gwarantuje, że serwer proxy wątku skojarzony z kontekstem wykonywania nie zmieni się, gdy serwer proxy wątku wykonuje metodę Dispatch
.
Zobacz też
Przestrzeń nazw współbieżności
IScheduler, struktura
IThreadProxy, struktura
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla