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 NULLaufweisen.

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 NULLaufweist.

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_1verwenden.

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 UmsThreadDefaultgelesen 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 pSchedulerversion 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