Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un'interfaccia a un contesto di esecuzione che può essere in esecuzione su un processore virtuale specificato e il cui contesto può essere cambiato cooperativamente.
Sintassi
struct IExecutionContext;
Membri
Metodi pubblici
| Nome | Descrizione |
|---|---|
| IExecutionContext::D ispatch | Metodo chiamato quando un proxy di thread inizia a eseguire un contesto di esecuzione specifico. Deve trattarsi della routine di lavoro principale per l'utilità di pianificazione. |
| IExecutionContext::GetId | Restituisce un identificatore univoco per il contesto di esecuzione. |
| IExecutionContext::GetProxy | Restituisce un'interfaccia al proxy di thread che esegue questo contesto. |
| IExecutionContext::GetScheduler | Restituisce un'interfaccia all'utilità di pianificazione a cui appartiene questo contesto di esecuzione. |
| IExecutionContext::SetProxy | Associa un proxy di thread a questo contesto di esecuzione. Il proxy del thread associato richiama questo metodo subito prima di iniziare l'esecuzione del metodo del Dispatch contesto. |
Osservazioni:
Se si implementa un'utilità di pianificazione personalizzata che si interfaccia con Resource Manager del runtime di concorrenza, sarà necessario implementare l'interfaccia IExecutionContext . I thread creati da Resource Manager eseguono operazioni per conto dell'utilità di pianificazione eseguendo il IExecutionContext::Dispatch metodo .
Gerarchia di ereditarietà
IExecutionContext
Requisiti
Intestazione: concrtrm.h
Spazio dei nomi: Concurrency
Metodo IExecutionContext::D ispatch
Metodo chiamato quando un proxy di thread inizia a eseguire un contesto di esecuzione specifico. Deve trattarsi della routine di lavoro principale per l'utilità di pianificazione.
virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;
Parametri
pDispatchState
Puntatore allo stato in cui viene inviato questo contesto di esecuzione. Per altre informazioni sullo stato di invio, vedere DispatchState.
Metodo IExecutionContext::GetId
Restituisce un identificatore univoco per il contesto di esecuzione.
virtual unsigned int GetId() const = 0;
Valore restituito
Identificatore integer univoco.
Osservazioni:
È consigliabile usare il metodo GetExecutionContextId per ottenere un identificatore univoco per l'oggetto che implementa l'interfaccia, prima di usare l'interfaccia IExecutionContext come parametro per i metodi forniti da Resource Manager. Si prevede di restituire lo stesso identificatore quando viene richiamata la GetId funzione.
Un identificatore ottenuto da un'origine diversa potrebbe comportare un comportamento non definito.
Metodo IExecutionContext::GetProxy
Restituisce un'interfaccia al proxy di thread che esegue questo contesto.
virtual IThreadProxy* GetProxy() = 0;
Valore restituito
Interfaccia IThreadProxy. Se il proxy del thread del contesto di esecuzione non è stato inizializzato con una chiamata a SetProxy, la funzione deve restituire NULL.
Osservazioni:
Resource Manager richiamerà il SetProxy metodo in un contesto di esecuzione, con un'interfaccia IThreadProxy come parametro, prima di immettere il Dispatch metodo nel contesto. Si prevede di archiviare questo argomento e restituirlo nelle chiamate a GetProxy().
Metodo IExecutionContext::GetScheduler
Restituisce un'interfaccia all'utilità di pianificazione a cui appartiene questo contesto di esecuzione.
virtual IScheduler* GetScheduler() = 0;
Valore restituito
Interfaccia IScheduler.
Osservazioni:
È necessario inizializzare il contesto di esecuzione con un'interfaccia valida IScheduler prima di usarlo come parametro per i metodi forniti da Resource Manager.
Metodo IExecutionContext::SetProxy
Associa un proxy di thread a questo contesto di esecuzione. Il proxy del thread associato richiama questo metodo subito prima di iniziare l'esecuzione del metodo del Dispatch contesto.
virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;
Parametri
pThreadProxy
Interfaccia per il proxy di thread che sta per immettere il Dispatch metodo in questo contesto di esecuzione.
Osservazioni:
Si prevede di salvare il parametro pThreadProxy e restituirlo in una chiamata al GetProxy metodo . Resource Manager garantisce che il proxy del thread associato al contesto di esecuzione non cambierà mentre il proxy del thread esegue il Dispatch metodo .
Vedi anche
Spazio dei nomi concurrency
Struttura IScheduler
Struttura IThreadProxy