Condividi tramite


Metodo ISchedulerProxy::RequestInitialVirtualProcessors

Consente di richiedere un'allocazione iniziale di radici del processore virtuale.Ogni radice del processore virtuale rappresenta la possibilità di eseguire un thread che può eseguire lavoro per l'utilità di pianificazione.

virtual IExecutionResource * RequestInitialVirtualProcessors(
   bool doSubscribeCurrentThread
) =0;

Parametri

  • doSubscribeCurrentThread
    Se sottoscrivere il thread corrente e tenerlo in considerazione durante l'allocazione della risorsa.

Valore restituito

L'interfaccia IExecutionResource per il thread corrente, se il parametro doSubscribeCurrentThread presenta il valore true.Se il valore è false, il metodo restituisce NULL.

Note

Prima che un'utilità di pianificazione esegua qualsiasi lavoro, deve utilizzare questo metodo per richiedere radici del processore virtuale dal gestore risorse.Gestione risorse accederà ai criteri dell'utilità di pianificazione mediante IScheduler::GetPolicy e utilizzerà i valori per le chiavi dei criteri MinConcurrency, MaxConcurrency e TargetOversubscriptionFactor al fine di determinare quanti thread di hardware assegnare inizialmente all'utilità di pianificazione e quante radici del processore virtuale creare per ogni thread di hardware.Per ulteriori informazioni sulla modalità in cui i criteri dell'utilità di pianificazione sono utilizzati per determinare l'allocazione iniziale di un'utilità di pianificazione, vedere PolicyElementKey.

Gestione risorse concede risorse a un'utilità di pianificazione eseguendo la chiamata al metodo IScheduler::AddVirtualProcessors con un elenco di radici del processore virtuale.Il metodo viene richiamato come callback nell'utilità di pianificazione prima della restituzione di tale metodo.

Se l'utilità di pianificazione ha richiesto una sottoscrizione per il thread corrente impostando il parametro doSubscribeCurrentThread su true, il metodo restituisce un'interfaccia IExecutionResource.È necessario terminare la sottoscrizione in un momento successivo utilizzando il metodo IExecutionResource::Remove.

Quando si determinerà quali thread di hardware vengono selezionati, Gestione risorse tenterà di ottimizzare l'affinità del nodo del processore.Se la sottoscrizione viene richiesta per il thread corrente, è un'indicazione che il thread corrente intende partecipare al lavoro assegnato a questa utilità di pianificazione.In tal caso, le radici dei processori virtuali allocate si trovano nel nodo del processore sul quale il thread corrente è in esecuzione, se possibile.

L'atto di sottoscrivere un thread incrementa di uno il livello di sottoscrizione del thread di hardware sottostante.Il livello di sottoscrizione viene ridotto di uno quando la sottoscrizione termina.Per ulteriori informazioni sui livelli della sottoscrizione, vedere IExecutionResource::CurrentSubscriptionLevel.

Requisiti

Header: concrtrm.h

Concorrenza diSpazio dei nomi:

Vedere anche

Riferimenti

Struttura ISchedulerProxy