IExecutionContext-Struktur

Eine Schnittstelle zu einem Ausführungskontext, der auf einem angegebenen virtuellen Prozessor ausgeführt werden kann und einen gemeinsamen Kontextwechsel zulässt.

Syntax

struct IExecutionContext;

Member

Öffentliche Methoden

Name Beschreibung
IExecutionContext::D ispatch Die Methode, die aufgerufen wird, wenn ein Threadproxy mit der Ausführung eines bestimmten Ausführungskontexts beginnt. Dies sollte die Standard Arbeitsroutine für Ihren Planer sein.
IExecutionContext::GetId Gibt einen eindeutigen Bezeichner für den Ausführungskontext zurück.
IExecutionContext::GetProxy Gibt eine Schnittstelle zum Threadproxy zurück, der diesen Kontext ausführt.
IExecutionContext::GetScheduler Gibt eine Schnittstelle zum Scheduler zurück, zu der dieser Ausführungskontext gehört.
IExecutionContext::SetProxy Ordnet einen Threadproxy diesem Ausführungskontext zu. Der zugeordnete Threadproxy ruft diese Methode direkt auf, bevor sie mit der Ausführung der Methode des Kontexts Dispatch beginnt.

Hinweise

Wenn Sie einen benutzerdefinierten Zeitplan implementieren, der mit dem Ressourcen-Manager der Concurrency Runtime schnittstellen, müssen Sie die IExecutionContext Schnittstelle implementieren. Die vom Ressourcen-Manager erstellten Threads führen aufgaben im Auftrag ihres Schedulers durch Ausführen der IExecutionContext::Dispatch Methode aus.

Vererbungshierarchie

IExecutionContext

Anforderungen

Kopfzeile: concrtrm.h

Namespace: Parallelität

IExecutionContext::D ispatch-Methode

Die Methode, die aufgerufen wird, wenn ein Threadproxy mit der Ausführung eines bestimmten Ausführungskontexts beginnt. Dies sollte die Standard Arbeitsroutine für Ihren Planer sein.

virtual void Dispatch(_Inout_ DispatchState* pDispatchState) = 0;

Parameter

pDispatchState
Ein Zeiger auf den Zustand, unter dem dieser Ausführungskontext verteilt wird. Weitere Informationen zum Verteilerstatus finden Sie unter DispatchState.

IExecutionContext::GetId-Methode

Gibt einen eindeutigen Bezeichner für den Ausführungskontext zurück.

virtual unsigned int GetId() const = 0;

Rückgabewert

Ein eindeutiger ganzzahliger Bezeichner.

Hinweise

Sie sollten die Methode GetExecutionContextId verwenden, um einen eindeutigen Bezeichner für das Objekt abzurufen, das die IExecutionContext Schnittstelle implementiert, bevor Sie die Schnittstelle als Parameter für Methoden verwenden, die vom Ressourcen-Manager bereitgestellt werden. Es wird erwartet, dass Sie denselben Bezeichner zurückgeben, wenn die GetId Funktion aufgerufen wird.

Ein von einer anderen Quelle abgerufener Bezeichner kann zu einem nicht definierten Verhalten führen.

IExecutionContext::GetProxy-Methode

Gibt eine Schnittstelle zum Threadproxy zurück, der diesen Kontext ausführt.

virtual IThreadProxy* GetProxy() = 0;

Rückgabewert

Eine IThreadProxy-Schnittstelle. Wenn der Threadproxy des Ausführungskontexts nicht mit einem Aufruf SetProxyinitialisiert wurde, muss die Funktion zurückgegeben werden NULL.

Hinweise

Der Ressourcen-Manager ruft die SetProxy Methode für einen Ausführungskontext mit einer IThreadProxy Schnittstelle als Parameter auf, bevor Sie die Dispatch Methode für den Kontext eingeben. Es wird erwartet, dass Sie dieses Argument speichern und für Aufrufe zurückgeben.GetProxy()

IExecutionContext::GetScheduler-Methode

Gibt eine Schnittstelle zum Scheduler zurück, zu der dieser Ausführungskontext gehört.

virtual IScheduler* GetScheduler() = 0;

Rückgabewert

Eine IScheduler-Schnittstelle.

Hinweise

Sie müssen den Ausführungskontext mit einer gültigen IScheduler Schnittstelle initialisieren, bevor Sie ihn als Parameter für Vom Ressourcen-Manager bereitgestellte Methoden verwenden.

IExecutionContext::SetProxy-Methode

Ordnet einen Threadproxy diesem Ausführungskontext zu. Der zugeordnete Threadproxy ruft diese Methode direkt auf, bevor sie mit der Ausführung der Methode des Kontexts Dispatch beginnt.

virtual void SetProxy(_Inout_ IThreadProxy* pThreadProxy) = 0;

Parameter

pThreadProxy
Eine Schnittstelle zum Threadproxy, der die Dispatch Methode für diesen Ausführungskontext eingibt.

Hinweise

Sie werden davon ausgegangen, dass sie den Parameter pThreadProxy speichern und bei einem Aufruf der GetProxy Methode zurückgeben. Der Ressourcen-Manager garantiert, dass sich der dem Ausführungskontext zugeordnete Threadproxy nicht ändert, während der Threadproxy die Dispatch Methode ausführt.

Siehe auch

Concurrency-Namespace
IScheduler-Struktur
IThreadProxy-Struktur