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 Hauptarbeitsroutine 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 Hauptarbeitsroutine 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 SetProxy
initialisiert 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