Udostępnij za pośrednictwem


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