Enumerazioni dello spazio dei nomi concurrency
Enumerazione agent_status
Stati validi per un agent
.
enum agent_status;
Valori
Nome | Descrizione |
---|---|
agent_canceled |
Il parametro agent è stato annullato. |
agent_created |
L'oggetto agent è stato creato ma non avviato. |
agent_done |
L'oggetto agent completato senza essere annullato. |
agent_runnable |
L'oggetto agent è stato avviato, ma non è stato immesso il run relativo metodo. |
agent_started |
L'oggetto agent è stato avviato. |
Osservazioni:
Per altre informazioni, vedere Agenti asincroni.
Requisiti
Intestazione: concrt.h
Enumerazione Agents_EventType
Tipi di eventi che possono essere tracciati mediante la funzionalità di tracciatura offerta dalla libreria di agenti.
enum Agents_EventType;
Valori
Nome | Descrizione |
---|---|
AGENTS_EVENT_CREATE |
Tipo di evento che rappresenta la creazione di un oggetto |
AGENTS_EVENT_DESTROY |
Tipo di evento che rappresenta l'eliminazione di un oggetto |
AGENTS_EVENT_END |
Tipo di evento che rappresenta la fine di un'elaborazione |
AGENTS_EVENT_LINK |
Tipo di evento che rappresenta il collegamento di blocchi di messaggi |
AGENTS_EVENT_NAME |
Tipo di evento che rappresenta il nome di un oggetto |
AGENTS_EVENT_SCHEDULE |
Tipo di evento che rappresenta la pianificazione di un processo |
AGENTS_EVENT_START |
Tipo di evento che rappresenta l'inizio di un'elaborazione |
AGENTS_EVENT_UNLINK |
Tipo di evento che rappresenta lo scollegamento di blocchi di messaggi |
Requisiti
Intestazione: concrt.h
Enumerazione ConcRT_EventType
Tipi di eventi che possono essere tracciati mediante la funzionalità di tracciatura offerta dal runtime di concorrenza.
enum ConcRT_EventType;
Valori
Nome | Descrizione |
---|---|
CONCRT_EVENT_ATTACH |
Tipo di evento che rappresenta l'atto di un collegamento a un'utilità di pianificazione. |
CONCRT_EVENT_BLOCK |
Tipo di evento che rappresenta l'atto di un blocco del contesto. |
CONCRT_EVENT_DETACH |
Tipo di evento che rappresenta l'atto di scollegamento da un'utilità di pianificazione. |
CONCRT_EVENT_END |
Tipo di evento che contrassegna l'inizio di una coppia di eventi di inizio/fine. |
CONCRT_EVENT_GENERIC |
Tipo di evento utilizzato per eventi vari. |
CONCRT_EVENT_IDLE |
Tipo di evento che rappresenta l'atto di un contesto che diventa inattiva. |
CONCRT_EVENT_START |
Tipo di evento che contrassegna l'inizio di una coppia di eventi di inizio/fine. |
CONCRT_EVENT_UNBLOCK |
Tipo di evento che rappresenta l'atto di sbloccare un contesto. |
CONCRT_EVENT_YIELD |
Tipo di evento che rappresenta l'azione di un contesto che restituisce. |
Requisiti
Intestazione: spazio dei nomi concrt.h : concorrenza
Enumerazione Concrt_TraceFlags
Flag di analisi per i tipi di evento
enum Concrt_TraceFlags;
Valori
Nome | Descrizione |
---|---|
AgentEventFlag |
|
AllEventsFlag |
|
ContextEventFlag |
|
PPLEventFlag |
|
ResourceManagerEventFlag |
|
SchedulerEventFlag |
|
VirtualProcessorEventFlag |
Requisiti
Intestazione: concrt.h
Enumerazione CriticalRegionType
Tipo di area critica in cui si trova un contesto.
enum CriticalRegionType;
Valori
Nome | Descrizione |
---|---|
InsideCriticalRegion |
Indica che il contesto si trova all'interno di un'area critica. Quando si trova all'interno di un'area critica, le sospensioni asincrone vengono nascoste dall'utilità di pianificazione. Se si verifica una sospensione di questo tipo, Resource Manager attenderà che il thread diventi eseguibile e lo riprendi semplicemente invece di richiamare nuovamente l'utilità di pianificazione. Tutti i blocchi eseguiti all'interno di tale regione devono essere presi con estrema cura. |
InsideHyperCriticalRegion |
Indica che il contesto si trova all'interno di un'area ipercritica. Quando si trova all'interno di un'area ipercritica, le sospensioni sincrone e asincrone sono nascoste dall'utilità di pianificazione. Se si verifica una sospensione o un blocco di questo tipo, il gestore risorse attenderà che il thread diventi eseguibile e lo riprenda semplicemente anziché richiamare nuovamente l'utilità di pianificazione. I blocchi eseguiti all'interno di tale area non devono mai essere condivisi con codice in esecuzione all'esterno di tale area. In questo modo si verificherà un deadlock imprevedibile. |
OutsideCriticalRegion |
Indica che il contesto è esterno a qualsiasi area critica. |
Requisiti
Intestazione: concrtrm.h
Enumerazione DynamicProgressFeedbackType
Usato dai criteri DynamicProgressFeedback
per descrivere se le risorse per l'utilità di pianificazione saranno ribilanciate sulla base di informazioni statistiche raccolte dall'utilità di pianificazione o solo sulla base di processori virtuali che passano allo stato inattivo e viceversa tramite chiamate ai metodi Activate
e Deactivate
sull'interfaccia IVirtualProcessorRoot
. Per altre informazioni sui criteri dell'utilità di pianificazione disponibili, vedere PolicyElementKey.
enum DynamicProgressFeedbackType;
Valori
Nome | Descrizione |
---|---|
ProgressFeedbackDisabled |
L'utilità di pianificazione non raccoglie informazioni sullo stato di avanzamento. Il ribilanciamento viene eseguito esclusivamente in base al livello di sottoscrizione del thread hardware sottostante. Per altre informazioni sui livelli di sottoscrizione, vedere IExecutionResource::CurrentSubscriptionLevel. Questo valore è riservato per l'uso da parte del runtime. |
ProgressFeedbackEnabled |
L'utilità di pianificazione raccoglie informazioni sullo stato di avanzamento e le passa al gestore risorse. Il gestore delle risorse utilizzerà queste informazioni statistiche per ribilanciare le risorse per conto dell'utilità di pianificazione oltre al livello di sottoscrizione del thread hardware sottostante. Per altre informazioni sui livelli di sottoscrizione, vedere IExecutionResource::CurrentSubscriptionLevel. |
Enumerazione join_type
Tipo di un blocco della messaggistica join
.
enum join_type;
Valori
Nome | Descrizione |
---|---|
greedy |
I blocchi di messaggistica Greedy join accettano immediatamente un messaggio al momento della propagazione. Questa operazione è più efficiente, ma ha la possibilità di bloccare in tempo reale, a seconda della configurazione di rete. |
non_greedy |
I messaggi non greedy join bloccano il rinvio dei messaggi e provano a utilizzarli dopo l'arrivo di tutti. Questi sono garantiti per funzionare, ma più lentamente. |
Requisiti
Intestazione: agents.h
Enumerazione message_status
Risposte valide per un'offerta di un oggetto message
a un blocco.
enum message_status;
Valori
Nome | Descrizione |
---|---|
accepted |
La destinazione ha accettato il messaggio. |
declined |
La destinazione non ha accettato il messaggio. |
missed |
La destinazione ha tentato di accettare il messaggio, ma non era più disponibile. |
postponed |
La destinazione ha posticipato il messaggio. |
Requisiti
Intestazione: agents.h
Enumerazione PolicyElementKey
Chiavi dei criteri che descrivono aspetti del comportamento dell'utilità di pianificazione. Ciascun elemento dei criteri è descritto da una coppia chiave-valore. Per altre informazioni sui criteri dell'utilità di pianificazione e sui relativi effetti sulle utilità di pianificazione, vedere Utilità di pianificazione.
enum PolicyElementKey;
Valori
Nome | Descrizione |
---|---|
ContextPriority |
Priorità del thread del sistema operativo di ogni contesto nell'utilità di pianificazione. Se questa chiave è impostata sul valore INHERIT_THREAD_PRIORITY i contesti nell'utilità di pianificazione erediteranno la priorità del thread che ha creato l'utilità di pianificazione.Valori validi: qualsiasi valore valido per la funzione di Windows SetThreadPriority e il valore speciale INHERIT_THREAD_PRIORITY Valore predefinito: THREAD_PRIORITY_NORMAL |
ContextStackSize |
Dimensioni dello stack riservato di ogni contesto nell'utilità di pianificazione in kilobyte. Valori validi: numeri interi positivi Valore predefinito: 0 , che indica che viene usato il valore predefinito del processo per le dimensioni dello stack. |
DynamicProgressFeedback |
Determina se le risorse per l'utilità di pianificazione verranno ribilanciate in base alle informazioni statistiche raccolte dall'utilità di pianificazione o solo in base al livello di sottoscrizione dei thread hardware sottostanti. Per altre informazioni, vedere DynamicProgressFeedbackType. Valori validi: membro dell'enumerazione DynamicProgressFeedbackType , ProgressFeedbackEnabled o ProgressFeedbackDisabled Valore predefinito: ProgressFeedbackEnabled |
LocalContextCacheSize |
Quando la SchedulingProtocol chiave dei criteri è impostata sul valore EnhanceScheduleGroupLocality , specifica il numero massimo di contesti eseguibili che possono essere memorizzati nella cache per ogni coda locale del processore virtuale. Tali contesti vengono in genere eseguiti nell'ordine LIFO (Last-In-First-Out) sul processore virtuale che li ha resi eseguibili. Si noti che questa chiave di criterio non ha alcun significato quando la SchedulingProtocol chiave è impostata sul valore EnhanceForwardProgress .Valori validi: interi non negativi Valore predefinito: 8 |
MaxConcurrency |
Livello di concorrenza massimo desiderato dall'utilità di pianificazione. Resource Manager tenterà di allocare inizialmente questo numero di processori virtuali. Il valore speciale MaxExecutionResources indica che il livello di concorrenza desiderato è uguale al numero di thread hardware nel computer. Se il valore specificato per MinConcurrency è maggiore del numero di thread hardware nel computer e MaxConcurrency viene specificato come MaxExecutionResources , il valore per MaxConcurrency viene generato in modo che corrisponda a quello impostato per MinConcurrency .Valori validi: numeri interi positivi e valore speciale MaxExecutionResources Valore predefinito: MaxExecutionResources |
MaxPolicyElementKey |
Chiave dell'elemento del criterio massimo. Chiave dell'elemento non valida. |
MinConcurrency |
Livello minimo di concorrenza che deve essere fornito all'utilità di pianificazione da parte di Resource Manager. Il numero di processori virtuali assegnati a un'utilità di pianificazione non sarà mai inferiore al minimo. Il valore speciale MaxExecutionResources indica che il livello di concorrenza minimo è uguale al numero di thread hardware nel computer. Se il valore specificato per MaxConcurrency è minore del numero di thread hardware nel computer e MinConcurrency viene specificato come MaxExecutionResources , il valore di MinConcurrency viene ridotto in modo che corrisponda a quello impostato per MaxConcurrency .Valori validi: numeri interi non negativi e il valore MaxExecutionResources speciale . Si noti che per i criteri dell'utilità di pianificazione utilizzati per la costruzione delle utilità di pianificazione del runtime di concorrenza, il valore 0 non è valido.Valore predefinito: 1 |
SchedulerKind |
Tipo di thread che l'utilità di pianificazione utilizzerà per i contesti di esecuzione sottostanti. Per altre informazioni, vedere SchedulerType. Valori validi: un membro dell'enumerazione SchedulerType , ad esempio ThreadScheduler Valore predefinito: ThreadScheduler . Ciò si traduce in thread Win32 in tutti i sistemi operativi. |
SchedulingProtocol |
Descrive l'algoritmo di pianificazione che verrà utilizzato dall'utilità di pianificazione. Per altre informazioni, vedere SchedulingProtocolType. Valori validi: membro dell'enumerazione SchedulingProtocolType , EnhanceScheduleGroupLocality o EnhanceForwardProgress Valore predefinito: EnhanceScheduleGroupLocality |
TargetOversubscriptionFactor |
Numero provvisorio di processori virtuali per thread hardware. Se necessario, il fattore dell'oversubscription di destinazione può essere incrementato da Gestione risorse per soddisfare MaxConcurrency con i thread hardware sul computer.Valori validi: numeri interi positivi Valore predefinito: 1 |
WinRTInitialization |
Requisiti
Intestazione: concrt.h
Enumerazione SchedulerType
Usato dai criteri SchedulerKind
per descrivere il tipo di thread che l'utilità di pianificazione deve usare per i contesti di esecuzione sottostanti. Per altre informazioni sui criteri dell'utilità di pianificazione disponibili, vedere PolicyElementKey.
enum SchedulerType;
Valori
Nome | Descrizione |
---|---|
ThreadScheduler |
Indica una richiesta esplicita di thread Win32 regolari. |
UmsThreadDefault |
I thread pianificabili in modalità utente (UMS) non sono supportati nel runtime di concorrenza in Visual Studio 2013. Utilizzando UmsThreadDefault come valore per i criteri SchedulerType non verrà generato un errore. Tuttavia, un'utilità di pianificazione creata con questi criteri viene impostata per l'utilizzo di thread Win32. |
Requisiti
Intestazione: concrt.h
Enumerazione SchedulingProtocolType
Usato dai criteri SchedulingProtocol
per descrivere quale algoritmo di pianificazione sarà usato per l'utilità di pianificazione. Per altre informazioni sui criteri dell'utilità di pianificazione disponibili, vedere PolicyElementKey.
enum SchedulingProtocolType;
Valori
Nome | Descrizione |
---|---|
EnhanceForwardProgress |
L'utilità di pianificazione preferisce eseguire il round robin tramite gruppi di pianificazione dopo l'esecuzione di ogni attività. I contesti sbloccati vengono in genere pianificati in modo FIFO (First-In-First-Out). I processori virtuali non memorizzano nella cache i contesti sbloccati. |
EnhanceScheduleGroupLocality |
L'utilità di pianificazione preferisce continuare a lavorare sulle attività all'interno del gruppo di pianificazione corrente prima di passare a un altro gruppo di pianificazione. I contesti sbloccati vengono memorizzati nella cache per ogni processore virtuale e vengono in genere pianificati in modo LIFO (Last-In-First-Out) dal processore virtuale che li ha sbloccati. |
Requisiti
Intestazione: concrt.h
Enumerazione SwitchingProxyState
Usato per indicare lo stato in cui si trova un proxy del thread, quando è in esecuzione uno scambio di contesto cooperativo per un proxy del thread diverso.
enum SwitchingProxyState;
Valori
Nome | Descrizione |
---|---|
Blocking |
Indica che il thread chiamante blocca in modo cooperativo e deve essere esclusivamente di proprietà del chiamante fino a quando non viene eseguito di nuovo e l'esecuzione di altre azioni. |
Idle |
Indica che il thread chiamante non è più necessario per l'utilità di pianificazione e che viene restituito a Resource Manager. Il contesto inviato non è più in grado di essere utilizzato da Resource Manager. |
Nesting |
Indica che il thread chiamante annida un'utilità di pianificazione figlio ed è necessaria per il chiamante, per connettersi a un'utilità di pianificazione diversa. |
Osservazioni:
Un parametro di tipo SwitchingProxyState
viene passato al metodo IThreadProxy::SwitchTo
per indicare a Resource Manager come trattare il proxy di thread che esegue la chiamata.
Per altre informazioni sull'uso di questo tipo, vedere IThreadProxy::SwitchTo.
Enumerazione task_group_status
Descrive lo stato di esecuzione di un oggetto task_group
o structured_task_group
. Un valore di questo tipo viene restituito da numerosi metodi che attendono attività pianificate a un gruppo di attività da completare.
enum task_group_status;
Valori
Nome | Descrizione |
---|---|
canceled |
L'oggetto task_group o structured_task_group è stato annullato. È possibile che una o più attività non siano state eseguite. |
completed |
Le attività in coda all'oggetto task_group o structured_task_group sono state completate. |
not_complete |
Le attività in coda all'oggetto task_group non sono state completate. Notare che questo valore non è al momento restituito dal runtime di concorrenza. |
Requisiti
Intestazione: pplinterface.h
Enumerazione WinRTInitializationType
Utilizzata dai criteri WinRTInitialization
per descrivere se e come Windows Runtime verrà inizializzato nei thread dell'utilità di pianificazione per un'applicazione eseguita nei sistemi operativi con la versione Windows 8 o superiore. Per altre informazioni sui criteri dell'utilità di pianificazione disponibili, vedere PolicyElementKey.
enum WinRTInitializationType;
Valori
Nome | Descrizione |
---|---|
DoNotInitializeWinRT |
Quando l'applicazione viene eseguita nei sistemi operativi con la versione Windows 8 o successiva, tramite i thread all'interno dell'utilità di pianificazione non verrà inizializzato Windows Runtime. |
InitializeWinRTAsMTA |
Quando l'applicazione viene eseguita nei sistemi operativi con la versione Windows 8 o successiva, tramite ogni thread all'interno dell'utilità di pianificazione verrà inizializzato Windows Runtime e verrà dichiarato che fa parte dell'apartment a thread multipli. |
Requisiti
Intestazione: concrt.h