IVirtualProcessorRoot::Activate-Methode
Veranlasst, dass der der Ausführungskontextschnittstelle pContext zugeordnete Threadproxy auf diesem virtuellen Prozessorstamm ausgeführt wird.
virtual void Activate(
IExecutionContext * pContext
) =0;
Parameter
- pContext
Eine Schnittstelle zum Ausführungskontext, der auf diesem virtuellen Prozessorstamm weitergeleitet wird.
Hinweise
Der Ressourcen-Manager stellt einen Threadproxy bereit, wenn der Ausführungskontextschnittstelle pContext keiner zugeordnet ist.
Die Activate-Methode kann verwendet werden, um mit der Bearbeitung von Aufgaben auf einem neuen virtuellen Prozessorstamm zu beginnen, der vom Ressourcen-Manager zurückgegeben wurde, oder um den Threadproxy auf einem virtuellen Prozessorstamm fortzusetzen, der deaktiviert wurde oder im Begriff ist, deaktiviert zu werden. Weitere Informationen zur Deaktivierung finden Sie unter IVirtualProcessorRoot::Deactivate. Wenn Sie den Stamm eines deaktivierten virtuellen Prozessors wiederaufnehmen, muss der Parameter pContext der gleiche sein wie der Parameter, der verwendet wurde, um den virtuellen Prozessorstamm zu deaktivieren.
Sobald ein virtueller Prozessorstamm zum ersten Mal aktiviert wurde, können zwischen nachfolgenden Aufrufpaaren von Deactivate und Activate Konflikte auftreten. Dies bedeutet, dass es akzeptabel ist, dass der Ressourcen-Manager einen Aufruf von Activate empfängt, bevor er den Deactivate-Aufruf empfängt, für den er vorgesehen war.
Wenn Sie einen virtuellen Prozessorstamm aktivieren, signalisieren Sie dem Ressourcen-Manager, dass der Stamm dieses virtuellen Prozessors gerade mit der Arbeit beschäftigt ist. Wenn der Planer keine Arbeit findet, die auf diesem Stamm ausgeführt werden soll, wird erwartet, dass er die Deactivate-Methode aufruft und den Ressourcen-Manager informiert, dass der virtuelle Prozessorstamm im Leerlauf ist. Der Ressourcen-Manager verwendet diese Daten zum Lastenausgleich des Systems.
invalid_argument wird ausgelöst, wenn das Argument pContext den Wert NULL hat.
invalid_operation wird ausgelöst, wenn der Argument pContext nicht den Ausführungskontext darstellt, der von diesem virtuellen Prozessorstamm zuletzt weitergeleitet wurde.
Durch das Aktivieren eines virtuellen Prozessorstamms wird die Abonnementebene des zugrunde liegenden Hardwarethreads um eins erhöht. Weitere Informationen zu Abonnementebenen finden Sie unter IExecutionResource::CurrentSubscriptionLevel.
Anforderungen
Header: concrtrm.h
Namespace: Concurrency
Siehe auch
Referenz
IVirtualProcessorRoot-Struktur
IVirtualProcessorRoot::Deactivate-Methode