IResourceManager-Struktur
Eine Schnittstelle zum Ressourcen-Manager der Concurrency Runtime. Dies ist die Schnittstelle, über die Planer mit dem Ressourcen-Manager kommunizieren.
Syntax
struct IResourceManager;
Member
Öffentliche Enumerationen
Name | Beschreibung |
---|---|
IResourceManager::OSVersion | Ein enumerierter Typ, der die Betriebssystemversion darstellt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
IResourceManager::CreateNodeTopology | Diese Methode ist nur in Debugbuilds der Laufzeit vorhanden, um das Testen des Ressourcen-Managers auf unterschiedlichen Hardwaretopologien zu vereinfachen, ohne dass eine tatsächliche Hardwareabgleich der Konfiguration erforderlich ist. Bei Verkaufsbuilds der Laufzeit wird diese Methode ohne Aktion zurückgegeben. |
IResourceManager::GetAvailableNodeCount | Gibt die Anzahl der Knoten zurück, die für den Ressourcen-Manager verfügbar sind. |
IResourceManager::GetFirstNode | Gibt den ersten Knoten in der Enumerationsreihenfolge zurück, wie vom Ressourcen-Manager definiert. |
IResourceManager::Reference | Erhöht die Verweisanzahl für die Resource Manager-Instanz. |
IResourceManager::RegisterScheduler | Registriert einen Planer beim Ressourcen-Manager. Nachdem der Scheduler registriert wurde, sollte er mit dem Ressourcen-Manager über die ISchedulerProxy zurückgegebene Schnittstelle kommunizieren. |
IResourceManager::Release | Erhöht die Verweisanzahl für die Resource Manager-Instanz. Der Ressourcen-Manager wird zerstört, wenn die Referenzanzahl angibt 0 . |
Hinweise
Verwenden Sie die CreateResourceManager-Funktion , um eine Schnittstelle zur Singleton Resource Manager-Instanz abzurufen. Die Methode erhöht eine Verweisanzahl für den Ressourcen-Manager, und Sie sollten die IResourceManager::Release-Methode aufrufen, um den Verweis freizugeben, wenn Sie mit dem Ressourcen-Manager fertig sind. In der Regel ruft jeder von Ihnen erstellte Scheduler diese Methode während der Erstellung auf und gibt den Verweis auf den Ressourcen-Manager frei, nachdem er heruntergefahren wurde.
Vererbungshierarchie
IResourceManager
Anforderungen
Kopfzeile: concrtrm.h
Namespace: Parallelität
IResourceManager::CreateNodeTopology-Methode
Diese Methode ist nur in Debugbuilds der Laufzeit vorhanden, um das Testen des Ressourcen-Managers auf unterschiedlichen Hardwaretopologien zu vereinfachen, ohne dass eine tatsächliche Hardwareabgleich der Konfiguration erforderlich ist. Bei Verkaufsbuilds der Laufzeit wird diese Methode ohne Aktion zurückgegeben.
virtual void CreateNodeTopology(
unsigned int nodeCount,
_In_reads_(nodeCount) unsigned int* pCoreCount,
_In_reads_opt_(nodeCount) unsigned int** pNodeDistance,
_In_reads_(nodeCount) unsigned int* pProcessorGroups) = 0;
Parameter
nodeCount
Die Anzahl der Prozessorknoten, die simuliert werden.
pCoreCount
Ein Array, das die Anzahl der Kerne auf jedem Knoten angibt.
pNodeDistance
Eine Matrix, die den Knotenabstand zwischen zwei Knoten angibt. Dieser Parameter kann den Wert NULL
aufweisen.
pProcessorGroups
Ein Array, das die Prozessorgruppe angibt, zu der jeder Knoten gehört.
Hinweise
invalid_argument wird ausgelöst, wenn der Parameter nodeCount
den Wert 0
übergeben hat oder wenn der Parameter pCoreCount
den Wert NULL
aufweist.
invalid_operation wird ausgelöst, wenn diese Methode aufgerufen wird, während andere Scheduler im Prozess vorhanden sind.
IResourceManager::GetAvailableNodeCount-Methode
Gibt die Anzahl der Knoten zurück, die für den Ressourcen-Manager verfügbar sind.
virtual unsigned int GetAvailableNodeCount() const = 0;
Rückgabewert
Die Anzahl der Knoten, die für den Ressourcen-Manager verfügbar sind.
IResourceManager::GetFirstNode-Methode
Gibt den ersten Knoten in der Enumerationsreihenfolge zurück, wie vom Ressourcen-Manager definiert.
virtual ITopologyNode* GetFirstNode() const = 0;
Rückgabewert
Der erste Knoten in der Enumerationsreihenfolge, wie vom Ressourcen-Manager definiert.
IResourceManager::OSVersion-Aufzählung
Ein enumerierter Typ, der die Betriebssystemversion darstellt.
enum OSVersion;
IResourceManager::Reference-Methode
Erhöht die Verweisanzahl für die Resource Manager-Instanz.
virtual unsigned int Reference() = 0;
Rückgabewert
Die resultierende Bezugsanzahl.
IResourceManager::RegisterScheduler-Methode
Registriert einen Planer beim Ressourcen-Manager. Nachdem der Scheduler registriert wurde, sollte er mit dem Ressourcen-Manager über die ISchedulerProxy
zurückgegebene Schnittstelle kommunizieren.
virtual ISchedulerProxy *RegisterScheduler(
_Inout_ IScheduler* pScheduler,
unsigned int version) = 0;
Parameter
pScheduler
Eine IScheduler
Schnittstelle zum zu registrierenden Scheduler.
Version
Die Version der Kommunikationsschnittstelle, die der Scheduler verwendet, um mit dem Ressourcen-Manager zu kommunizieren. Die Verwendung einer Version ermöglicht es dem Ressourcen-Manager, die Kommunikationsschnittstelle zu entwickeln und zeitplanungsbasierten Zugriff auf ältere Features zu ermöglichen. Planer, die Ressourcen-Manager-Features verwenden möchten, die in Visual Studio 2010 vorhanden sind, sollten die Version CONCRT_RM_VERSION_1
verwenden.
Rückgabewert
Die ISchedulerProxy
Schnittstelle, die der Ressourcen-Manager Ihrem Scheduler zugeordnet hat. Ihr Scheduler sollte diese Schnittstelle verwenden, um von diesem Punkt an mit dem Ressourcen-Manager zu kommunizieren.
Hinweise
Verwenden Sie diese Methode, um die Kommunikation mit dem Ressourcen-Manager zu initiieren. Die Methode ordnet die IScheduler
Schnittstelle für ihren Scheduler einer ISchedulerProxy
Schnittstelle zu und übergibt sie an Sie zurück. Sie können die zurückgegebene Schnittstelle verwenden, um Ausführungsressourcen für die Verwendung durch den Planer anzufordern oder Threads mit dem Ressourcen-Manager zu abonnieren. Der Ressourcen-Manager verwendet Richtlinienelemente aus der Von der IScheduler::GetPolicy-Methode zurückgegebenen Zeitplanrichtlinie, um zu bestimmen, welche Art von Threads der Scheduler ausführen muss. Wenn Ihr SchedulerKind
Richtlinienschlüssel den Wert UmsThreadDefault
aufweist und der Wert aus der Richtlinie als Wert UmsThreadDefault
gelesen wird, muss die IScheduler
an die Methode übergebene Schnittstelle eine IUMSScheduler
Schnittstelle sein.
Die Methode löst eine invalid_argument
Ausnahme aus, wenn der Parameter den Wert NULL
aufweist oder wenn der Parameter pScheduler
version
keine gültige Version für die Kommunikationsschnittstelle ist.
IResourceManager::Release-Methode
Erhöht die Verweisanzahl für die Resource Manager-Instanz. Der Ressourcen-Manager wird zerstört, wenn die Referenzanzahl angibt 0
.
virtual unsigned int Release() = 0;
Rückgabewert
Die resultierende Bezugsanzahl.
Siehe auch
Concurrency-Namespace
ISchedulerProxy-Struktur
IScheduler-Struktur