Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozhraní pro kontext spuštění, který může běžet na daném virtuálním procesoru a být kooperačně kontextový.
Syntaxe
struct IExecutionContext;
Členové
Veřejné metody
| Název | Popis |
|---|---|
| IExecutionContext::D ispatch | Volá se metoda, která se volá, když proxy vlákna spustí konkrétní kontext spuštění. Toto by měla být hlavní rutina pracovního procesu pro váš plánovač. |
| IExecutionContext::GetId | Vrátí jedinečný identifikátor kontextu spuštění. |
| IExecutionContext::GetProxy | Vrátí rozhraní proxy vláken, které spouští tento kontext. |
| IExecutionContext::GetScheduler | Vrátí rozhraní plánovače, do které patří tento kontext spuštění. |
| IExecutionContext::SetProxy | Přidruží proxy vlákno k tomuto kontextu spuštění. Přidružený proxy vlákno vyvolá tuto metodu přímo před spuštěním metody kontextu Dispatch . |
Poznámky
Pokud implementujete vlastní plánovač, který je součástí Resource Manageru modulu Concurrency Runtime, budete muset rozhraní implementovat IExecutionContext . Vlákna vytvořená Resource Managerem provádějí práci jménem vašeho plánovače spuštěním IExecutionContext::Dispatch metody.
Hierarchie dědičnosti
IExecutionContext
Požadavky
Hlavička: concrtrm.h
Obor názvů: souběžnost
IExecutionContext::D ispatch – metoda
Volá se metoda, která se volá, když proxy vlákna spustí konkrétní kontext spuštění. Toto by měla být hlavní rutina pracovního procesu pro váš plánovač.
virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;
Parametry
pDispatchState
Ukazatel na stav, pod kterým se tento kontext spuštění odesílá. Další informace o stavu odeslání naleznete v tématu DispatchState.
IExecutionContext::GetId – metoda
Vrátí jedinečný identifikátor kontextu spuštění.
virtual unsigned int GetId() const = 0;
Návratová hodnota
Jedinečný celočíselnou identifikátor.
Poznámky
Tuto metodu GetExecutionContextId byste měli použít k získání jedinečného identifikátoru objektu, který implementuje IExecutionContext rozhraní, než rozhraní použijete jako parametr pro metody poskytované Resource Managerem. Očekává se, že při GetId vyvolání funkce vrátíte stejný identifikátor.
Identifikátor získaný z jiného zdroje může mít za následek nedefinované chování.
IExecutionContext::GetProxy – metoda
Vrátí rozhraní proxy vláken, které spouští tento kontext.
virtual IThreadProxy* GetProxy() = 0;
Návratová hodnota
Rozhraní IThreadProxy . Pokud proxy vlákna kontextu spuštění nebylo inicializováno voláním SetProxy, funkce musí vrátit NULL.
Poznámky
Resource Manager vyvolá metodu SetProxy v kontextu spuštění s IThreadProxy rozhraním jako parametrem před zadáním Dispatch metody v kontextu. Očekává se, že tento argument uložíte a vrátíte ho při volání GetProxy().
IExecutionContext::GetScheduler – metoda
Vrátí rozhraní plánovače, do které patří tento kontext spuštění.
virtual IScheduler* GetScheduler() = 0;
Návratová hodnota
Rozhraní IScheduler .
Poznámky
Než ho použijete jako parametr pro metody poskytované Resource Managerem, musíte inicializovat kontext spuštění platným IScheduler rozhraním.
IExecutionContext::SetProxy – metoda
Přidruží proxy vlákno k tomuto kontextu spuštění. Přidružený proxy vlákno vyvolá tuto metodu přímo před spuštěním metody kontextu Dispatch .
virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;
Parametry
pThreadProxy
Rozhraní pro proxy vlákna, které se chystá zadat metodu Dispatch v tomto kontextu spuštění.
Poznámky
Očekává se, že parametr uložíte pThreadProxy a vrátíte ho GetProxy při volání metody. Resource Manager zaručuje, že proxy vlákna přidružené k kontextu spuštění se nezmění, když proxy vlákna provádí metodu Dispatch .
Viz také
concurrency – obor názvů
IScheduler – struktura
IThreadProxy – struktura