Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Schnittstelle zum Ressourcen-Manager der Concurrency Runtime. Dies ist die Schnittstelle, über die Planer mit dem Ressourcen-Manager kommunizieren.
Syntax
struct IResourceManager;
Mitglieder
Öffentliche Aufzählungen
| Name | Beschreibung |
|---|---|
| IResourceManager::OSVersion | Ein enumerierter Typ, der die Betriebssystemversion darstellt. |
Öffentliche Methoden
| Name | Beschreibung |
|---|---|
| IResourceManager::CreateNodeTopology | Diese Methode ist nur in Debug-Builds der Laufzeitumgebung vorhanden und ist als Test-Hook konzipiert, um das Testen des Ressourcen-Managers auf unterschiedlichen Hardware-Topologien zu erleichtern, ohne dass dafür eine tatsächliche Hardware erforderlich ist, die der Konfiguration entspricht. 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 Scheduler beim Ressourcen-Manager. Nachdem der Scheduler registriert wurde, sollte er mit dem Ressourcen-Manager über die ISchedulerProxy zurückgegebene Schnittstelle kommunizieren. |
| IResourceManager::Release | Verringert die Verweisanzahl für die Resource Manager-Instanz. Der Ressourcen-Manager wird zerstört, wenn der Referenzzähler 0 erreicht. |
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 Debug-Versionen der Laufzeitumgebung vorhanden und dient als Test-Hook, um das Testen des Ressourcen-Managers auf unterschiedlichen Hardwaretopologien zu erleichtern, ohne dass tatsächlich Hardware erforderlich ist, die der Konfiguration entspricht. Bei Retail-Builds der Laufzeit führt diese Methode keine Aktion aus und kehrt einfach zurück.
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 Referenzanzahl.
IResourceManager::RegisterScheduler-Methode
Registriert einen Scheduler 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 Scheduler, der zu registrieren ist.
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 weiterzuentwickeln und Planungsprogrammen Zugriff auf ältere Funktionalitäten 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 Ressourcenmanager verwendet Richtlinienelemente aus der von der Methode IScheduler::GetPolicy 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 pScheduler aufweist oder wenn der Parameter NULLversion keine gültige Version für die Kommunikationsschnittstelle ist.
IResourceManager::Release-Methode
Verringert die Verweisanzahl für die Resource Manager-Instanz. Der Ressourcen-Manager wird zerstört, wenn der Referenzzähler 0 erreicht.
virtual unsigned int Release() = 0;
Rückgabewert
Die resultierende Referenzanzahl.
Siehe auch
Concurrency-Namespace
ISchedulerProxy-Struktur
IScheduler-Struktur