Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un'interfaccia al Gestore delle risorse del runtime di concorrenza. Questa è l'interfaccia tramite la quale i pianificatori comunicano con il Gestore delle Risorse.
Sintassi
struct IResourceManager;
Membri
Enumerazioni pubbliche
| Nome | Descrizione |
|---|---|
| IResourceManager::OSVersion | Tipo enumerato che rappresenta la versione del sistema operativo. |
Metodi pubblici
| Nome | Descrizione |
|---|---|
| IResourceManager::CreateNodeTopology | Presente solo nelle build di debug del runtime, questo metodo è un hook di test progettato per facilitare il test di Resource Manager in topologie hardware variabili, senza richiedere hardware effettivo corrispondente alla configurazione. Con le versioni retail del runtime, questo metodo non eseguirà alcuna azione e terminerà. |
| IResourceManager::GetAvailableNodeCount | Restituisce il numero di nodi disponibili per Gestione risorse. |
| IResourceManager::GetFirstNode | Restituisce il primo nodo nell'ordine dell'enumerazione come definito da Gestione risorse. |
| IResourceManager::Reference | Incrementa il conteggio dei riferimenti nell'istanza di Resource Manager. |
| IResourceManager::RegisterScheduler | Registra uno schedulatore con il Resource Manager. Dopo aver registrato l'utilità di pianificazione, esso deve comunicare con il Gestore delle Risorse usando l'interfaccia ISchedulerProxy restituita. |
| IResourceManager::Release | Decrementa il conteggio dei riferimenti nell'istanza del Resource Manager. Resource Manager viene eliminato definitivamente quando il conteggio dei riferimenti passa a 0. |
Osservazioni:
Usare la funzione CreateResourceManager per ottenere un'interfaccia per l'istanza di Resource Manager singleton. Il metodo incrementa un conteggio dei riferimenti nel Resource Manager ed è necessario richiamare il metodo IResourceManager::Release per rilasciare il riferimento quando hai finito di usare Resource Manager. In genere, ogni scheduler che crei invoca questo metodo durante la creazione e rilascerà il riferimento al Resource Manager dopo che si sarà arrestato.
Gerarchia di ereditarietà
IResourceManager
Requisiti
Intestazione: concrtrm.h
Spazio dei nomi: Concurrency
Metodo IResourceManager::CreateNodeTopology
Presente solo nelle build di debug del runtime, questo metodo è un hook di test progettato per facilitare il test di Resource Manager in topologie hardware variabili, senza richiedere hardware effettivo corrispondente alla configurazione. Con le build di vendita al dettaglio del runtime, questo metodo verrà restituito senza eseguire alcuna azione.
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;
Parametri
nodeCount
Numero di nodi del processore simulati.
pCoreCount
Matrice che specifica il numero di core in ogni nodo.
pNodeDistance
Matrice che specifica la distanza del nodo tra due nodi. Questo parametro può avere il valore NULL.
pProcessorGroups
Matrice che specifica il gruppo di processori a cui appartiene ogni nodo.
Osservazioni:
invalid_argument viene generato se il parametro nodeCount ha il valore 0 è stato passato o se il parametro pCoreCount ha il valore NULL.
invalid_operation viene lanciata se questo metodo viene chiamato mentre esistono altri scheduler nel processo.
Metodo "IResourceManager::GetAvailableNodeCount"
Restituisce il numero di nodi disponibili per Gestione risorse.
virtual unsigned int GetAvailableNodeCount() const = 0;
Valore restituito
Numero di nodi disponibili per Resource Manager.
Metodo IResourceManager::GetFirstNode
Restituisce il primo nodo nell'ordine dell'enumerazione come definito da Gestione risorse.
virtual ITopologyNode* GetFirstNode() const = 0;
Valore restituito
Primo nodo nell'ordine di enumerazione definito da Resource Manager.
Enumerazione IResourceManager::OSVersion
Tipo enumerato che rappresenta la versione del sistema operativo.
enum OSVersion;
Metodo IResourceManager::Reference
Incrementa il conteggio dei riferimenti nell'istanza di Resource Manager.
virtual unsigned int Reference() = 0;
Valore restituito
Conteggio dei riferimenti risultante.
Metodo IResourceManager::RegisterScheduler
Registra uno schedulatore con il Resource Manager. Dopo aver registrato l'utilità di pianificazione, esso deve comunicare con il Gestore delle Risorse usando l'interfaccia ISchedulerProxy restituita.
virtual ISchedulerProxy *RegisterScheduler(
_Inout_ IScheduler* pScheduler,
unsigned int version) = 0;
Parametri
pScheduler
Interfaccia IScheduler del pianificatore da registrare.
version
La versione dell'interfaccia di comunicazione utilizzata dal pianificatore per comunicare con il Gestore delle Risorse. L'uso di una versione consente al Resource Manager di evolvere l'interfaccia di comunicazione e permette ai pianificatori di accedere alle funzionalità precedenti. I pianificatori che desiderano utilizzare le funzionalità di Resource Manager presenti in Visual Studio 2010 devono usare la versione CONCRT_RM_VERSION_1.
Valore restituito
L'interfaccia ISchedulerProxy che il Resource Manager ha associato al tuo schedulatore. L'utilità di pianificazione deve usare questa interfaccia per comunicare con Resource Manager da questo punto in poi.
Osservazioni:
Usare questo metodo per avviare la comunicazione con Resource Manager. Il metodo associa l'interfaccia IScheduler del pianificatore a un'interfaccia ISchedulerProxy e la restituisce all'utente. È possibile usare l'interfaccia restituita per richiedere risorse di esecuzione da usare dall'utilità di pianificazione o per sottoscrivere thread con Resource Manager. Il Resource Manager utilizzerà gli elementi del criterio restituiti dal metodo IScheduler::GetPolicy per determinare che tipo di thread il pianificatore avrà bisogno di eseguire. Se la SchedulerKind chiave dei criteri ha il valore UmsThreadDefault e il valore viene letto di nuovo dal criterio come valore UmsThreadDefault, l'interfaccia IScheduler passata al metodo deve essere un'interfaccia IUMSScheduler .
Il metodo genera un'eccezione invalid_argument se il parametro pScheduler ha il valore NULL o se il parametro version non è una versione valida per l'interfaccia di comunicazione.
Metodo IResourceManager::Release
Decrementa il conteggio dei riferimenti nell'istanza del Resource Manager. Resource Manager viene eliminato definitivamente quando il conteggio dei riferimenti passa a 0.
virtual unsigned int Release() = 0;
Valore restituito
Conteggio dei riferimenti risultante.
Vedi anche
Spazio dei nomi concorrenza
Struttura ISchedulerProxy
Struttura IScheduler