Condividi tramite


Classe Context

Consente di rappresentare un'astrazione per un contesto di esecuzione.

class Context;

Membri

Metodi pubblici

Nome

Oggetto di descrizione

Metodo Context::Block

Blocca la richiesta corrente.

Metodo Context::CurrentContext

Consente di restituire un puntatore al contesto corrente.

Metodo Context::GetId

Consente di restituire un identificatore per il contesto che è univoco all'interno dell'utilità di pianificazione a cui appartiene il contesto.

Metodo Context::GetScheduleGroupId

Consente di restituire un identificatore per il gruppo di pianificazione su cui sta funzionando attualmente il contesto.

Metodo Context::GetVirtualProcessorId

Consente di restituire un identificatore per il processore virtuale su cui è attualmente in esecuzione il contesto.

Metodo Context::Id

Consente di restituire un identificatore per il contesto corrente che è univoco all'interno dell'utilità di pianificazione a cui appartiene il contesto corrente.

Metodo Context::IsCurrentTaskCollectionCanceling

Consente di restituire un'indicazione se l'insieme di attività attualmente in esecuzione inline sul contesto corrente si trova nel mezzo di un annullamento attivo (o lo sarà a breve).

Metodo Context::IsSynchronouslyBlocked

Determina se il contesto è bloccato in modo sincrono o meno. Si considera che un contesto sia bloccato in modo sincrono se ha eseguito in modo esplicito un'azione che ha condotto al blocco.

Metodo Context::Oversubscribe

Inietta un processore virtuale aggiuntivo in un'utilità di pianificazione per la durata di un blocco di codice in caso di richiamo su un contesto che esegue uno dei processori virtuali in quell'utilità di pianificazione.

Metodo Context::ScheduleGroupId

Consente di restituire un identificatore per il gruppo di pianificazione su cui sta funzionando il contesto corrente.

Metodo Context::Unblock

Consente di sbloccare il contesto e determinare che diventi eseguibile.

Metodo Context::VirtualProcessorId

Consente di restituire un identificatore per il processore virtuale su cui è in esecuzione il contesto corrente.

Metodo Context::Yield

Consente di rilasciare l'esecuzione in modo che sia possibile eseguire un altro contesto. Se non è disponibile un altro contesto a cui passare, è possibile che l'utilità di pianificazione passi a un altro thread del sistema operativo.

Operatori protetti

Nome

Oggetto di descrizione

Operatore Context::operator delete

Un oggetto Context è distrutto internamente dal runtime. È possibile che non sia eliminato in modo esplicito.

Note

L'utilità di pianificazione del runtime di concorrenza (vedere Utilità di pianificazione) utilizza contesti di esecuzione per effettuare il lavoro posti in coda dall'applicazione. Un thread Win32 e un thread UMS della modalità utente sono esempi di contesti di esecuzione su un sistema operativo Windows. I thread UMS sono supportati solo su sistemi operativi a 64 bit con Windows versione 7 e successive.

In qualsiasi momento, il livello di concorrenza di un'utilità di pianificazione è uguale al numero di processori virtuale concessi dal gestore risorse. Un processore virtuale è un'astrazione per una risorsa di elaborazione e corrisponde a un thread di hardware sul sistema sottostante. È possibile che solo un singolo contesto dell'utilità di pianificazione sia eseguito su un processore virtuale a un'ora specificata.

L'utilità di pianificazione è cooperativa per natura e un contesto in esecuzione può generare il proprio processore virtuale un contesto diverso in qualsiasi momento se desidera passare a uno stato di attesa. Quando viene soddisfatta la relativa attesa, non è possibile ripristinarlo finché un processore virtuale disponibile dell'utilità di pianificazione non ne inizia l'esecuzione.

Gerarchia di ereditarietà

Contesto

Requisiti

Header: concrt.h

Spazio dei nomi: Concurrency

Vedere anche

Riferimenti

Spazio dei nomi Concurrency

Classe Scheduler

Concetti

Utilità di pianificazione (runtime di concorrenza)