Condividi tramite


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.

Vedi anche

Spazio dei nomi concurrency