Classe task_continuation_context
La classe task_continuation_context
consente di specificare dove eseguire una continuazione. È utile usare questa classe solo da un'app di Windows Runtime. Per le app non Windows Runtime, il contesto di esecuzione della continuazione dell'attività è determinato dal runtime e non configurabile.
Sintassi
class task_continuation_context : public details::_ContextCallback;
Membri
Metodi pubblici
Nome | Descrizione |
---|---|
get_current_winrt_context | Restituisce un oggetto contesto di continuazione dell'attività che rappresenta il contesto del thread winrt corrente. |
use_arbitrary | Crea un contesto di continuazione delle attività che consente al runtime di scegliere il contesto di esecuzione per una continuazione. |
use_current | Restituisce un oggetto del contesto di continuazione di attività che rappresenta il contesto di esecuzione corrente. |
use_default | Crea il contesto di continuazione di attività predefinito. |
use_synchronous_execution | Restituisce un oggetto contesto di continuazione dell'attività che rappresenta il contesto di esecuzione sincrono. |
Gerarchia di ereditarietà
_ContextCallback
task_continuation_context
Requisiti
Intestazione: ppltasks.h
Spazio dei nomi: Concurrency
get_current_winrt_context
Restituisce un oggetto contesto di continuazione dell'attività che rappresenta il contesto del thread WinRT corrente.
Sintassi
static task_continuation_context get_current_winrt_context();
Valore restituito
Contesto del thread di Windows Runtime corrente. Restituisce un task_continuation_context vuoto se viene chiamato da un contesto non Windows Runtime.
Osservazioni:
Il get_current_winrt_context
metodo acquisisce il contesto del thread Windows Runtime del chiamante. Restituisce un contesto vuoto ai chiamanti non Windows Runtime.
Il valore restituito da get_current_winrt_context
può essere usato per indicare al runtime che la continuazione deve essere eseguita nel modello apartment del contesto acquisito (STA vs MTA), indipendentemente dal fatto che l'attività precedente sia compatibile con apartment. Un'attività che riconosce l'appartamento è un'attività che annulla il wrapping di un'interfaccia di Windows Runtime IAsyncInfo
o un'attività discendente da tale attività.
Questo metodo è simile al use_current
metodo , ma è disponibile anche per il codice C++ nativo senza il supporto dell'estensione C++/CX. È destinato all'uso da parte di utenti avanzati che scrivono codice di libreria indipendente da C++/CX per i chiamanti nativi e Windows Runtime. A meno che non sia necessaria questa funzionalità, è consigliabile usare il use_current
metodo , disponibile solo per i client C++/CX.
use_arbitrary
Crea un contesto di continuazione delle attività che consente al runtime di scegliere il contesto di esecuzione per una continuazione.
Sintassi
static task_continuation_context use_arbitrary();
Valore restituito
Contesto di continuazione dell'attività che rappresenta una posizione arbitraria.
Osservazioni:
Quando viene usato questo contesto di continuazione, la continuazione verrà eseguita in un contesto scelto dal runtime anche se l'attività precedente è compatibile con apartment.
use_arbitrary
può essere usato per disattivare il comportamento predefinito per una continuazione in un'attività che riconosce l'appartamento creata in una sta.
Questo metodo è disponibile solo per le app di Windows Runtime.
use_current
Restituisce un oggetto del contesto di continuazione di attività che rappresenta il contesto di esecuzione corrente.
static task_continuation_context use_current();
Valore restituito
Contesto di esecuzione corrente.
Osservazioni:
Questo metodo acquisisce il contesto di Windows Runtime del chiamante in modo che le continuazioni possano essere eseguite nell'apartment corretto.
Il valore restituito da use_current
può essere usato per indicare al runtime che la continuazione deve essere eseguita nel contesto acquisito (STA e MTA) indipendentemente dal fatto che l'attività precedente sia compatibile con apartment. Un'attività che riconosce l'appartamento è un'attività che annulla il wrapping di un'interfaccia di Windows Runtime IAsyncInfo
o un'attività discendente da tale attività.
Questo metodo è disponibile solo per le app di Windows Runtime.
use_default
Crea il contesto di continuazione di attività predefinito.
static task_continuation_context use_default();
Valore restituito
Contesto di continuazione predefinito.
Osservazioni:
Il contesto predefinito viene usato se non si specifica un contesto di continuazione quando si chiama il then
metodo . Nelle applicazioni Windows per Windows 7 e versioni successive, nonché nelle applicazioni desktop in Windows 8 e versioni successive, il runtime determina dove verranno eseguite le continuazioni delle attività. Tuttavia, in un'app di Windows Runtime, il contesto di continuazione predefinito per una continuazione in un'attività che riconosce l'appartamento è l'appartamento in cui then
viene richiamato.
Un'attività che riconosce l'appartamento è un'attività che annulla il wrapping di un'interfaccia di Windows Runtime IAsyncInfo
o un'attività discendente da tale attività. Pertanto, se si pianifica una continuazione in un'attività compatibile con apartment in un'istanza di Windows Runtime STA, la continuazione verrà eseguita in tale sta.
Una continuazione in un'attività non compatibile con apartment verrà eseguita in un contesto scelto dal runtime.
task_continuation_context::use_synchronous_execution
Restituisce un oggetto contesto di continuazione dell'attività che rappresenta il contesto di esecuzione sincrono.
Sintassi
static task_continuation_context use_synchronous_execution();
Valore restituito
Contesto di esecuzione sincrono.
Osservazioni:
Il use_synchronous_execution
metodo forza l'esecuzione sincrona dell'attività di continuazione nel contesto, causando il completamento dell'attività precedente.
Se l'attività precedente è già stata completata quando la continuazione è collegata, la continuazione viene eseguita in modo sincrono sul contesto che collega la continuazione.