Partager via


task_continuation_context, classe

La classe task_continuation_context vous permet de spécifier où vous souhaitez qu'une continuation soit exécutée. Il est uniquement utile d’utiliser cette classe à partir d’une application Windows Runtime. Pour les applications non-Windows Runtime, le contexte d’exécution de la continuation de tâche est déterminé par le runtime et n’est pas configurable.

Syntaxe

class task_continuation_context : public details::_ContextCallback;

Membres

Méthodes publiques

Nom Description
get_current_winrt_context Retourne un objet de contexte de continuation de tâche qui représente le contexte de thread winrt actuel.
use_arbitrary Crée un contexte de continuation de tâche qui permet au runtime de choisir le contexte d'exécution pour une continuation.
use_current Renvoie un objet de contexte de continuation de tâche représentant le contexte d'exécution actuel.
use_default Crée le contexte de continuation de tâche par défaut.
use_synchronous_execution Retourne un objet de contexte de continuation de tâche qui représente le contexte d’exécution synchrone.

Hiérarchie d'héritage

_ContextCallback

task_continuation_context

Spécifications

En-tête : ppltasks.h

Espace de noms : concurrency

get_current_winrt_context

Retourne un objet de contexte de continuation de tâche qui représente le contexte de thread WinRT actuel.

Syntaxe

static task_continuation_context get_current_winrt_context();

Valeur de retour

Contexte de thread Windows Runtime actuel. Retourne un task_continuation_context vide s’il est appelé à partir d’un contexte non-Windows Runtime.

Notes

La get_current_winrt_context méthode capture le contexte de thread Windows Runtime de l’appelant. Elle retourne un contexte vide aux appelants non-Windows Runtime.

La valeur retournée par get_current_winrt_context peut être utilisée pour indiquer au runtime que la continuation doit s’exécuter dans le modèle d’appartement du contexte capturé (STA vs MTA), que la tâche antécédente soit consciente de l’appartement. Une tâche prenant en charge l’appartement est une tâche qui supprime une interface Windows Runtime IAsyncInfo ou une tâche qui descend d’une telle tâche.

Cette méthode est similaire à la méthode, mais elle est également disponible pour le use_current code C++ natif sans prise en charge de l’extension C++/CX. Il est destiné à être utilisé par des utilisateurs avancés écrivant du code de bibliothèque C++/CX indépendant pour les appelants natifs et Windows Runtime. Sauf si vous avez besoin de cette fonctionnalité, nous vous recommandons la use_current méthode, qui est disponible uniquement pour les clients C++/CX.

use_arbitrary

Crée un contexte de continuation de tâche qui permet au runtime de choisir le contexte d'exécution pour une continuation.

Syntaxe

static task_continuation_context use_arbitrary();

Valeur de retour

Contexte de continuation de tâche qui représente un emplacement arbitraire.

Notes

Lorsque ce contexte de continuation est utilisé, la continuation s’exécute dans un contexte que le runtime choisit même si la tâche antécédente est consciente de l’appartement.

use_arbitrary peut être utilisé pour désactiver le comportement par défaut d’une continuation sur une tâche prenant en charge l’appartement créée dans une sta.

Cette méthode est disponible uniquement pour les applications Windows Runtime.

use_current

Renvoie un objet de contexte de continuation de tâche représentant le contexte d'exécution actuel.

static task_continuation_context use_current();

Valeur de retour

Contexte d'exécution actuel.

Notes

Cette méthode capture le contexte Windows Runtime de l’appelant afin que les continuations puissent être exécutées dans l’appartement approprié.

La valeur retournée par use_current peut être utilisée pour indiquer au runtime que la continuation doit s’exécuter dans le contexte capturé (STA ou MTA), que la tâche antérieure soit consciente ou non de l’appartement. Une tâche prenant en charge l’appartement est une tâche qui supprime une interface Windows Runtime IAsyncInfo ou une tâche qui descend d’une telle tâche.

Cette méthode est disponible uniquement pour les applications Windows Runtime.

use_default

Crée le contexte de continuation de tâche par défaut.

static task_continuation_context use_default();

Valeur de retour

Contexte de continuation par défaut.

Notes

Le contexte par défaut est utilisé si vous ne spécifiez pas de contexte de continuation lorsque vous appelez la then méthode. Dans les applications Windows pour Windows 7 et versions ultérieures, ainsi que les applications de bureau sur Windows 8 et versions ultérieures, le runtime détermine où les continuations de tâches s’exécuteront. Toutefois, dans une application Windows Runtime, le contexte de continuation par défaut d’une continuation sur une tâche prenant en charge l’appartement est l’appartement où then il est appelé.

Une tâche prenant en charge l’appartement est une tâche qui supprime une interface Windows Runtime IAsyncInfo ou une tâche qui descend d’une telle tâche. Par conséquent, si vous planifiez une continuation sur une tâche prenant en charge un appartement dans une sta Windows Runtime, la continuation s’exécute dans cette sta.

Une continuation sur une tâche non prenant en charge l’appartement s’exécute dans un contexte que le runtime choisit.

task_continuation_context ::use_synchronous_execution

Retourne un objet de contexte de continuation de tâche qui représente le contexte d’exécution synchrone.

Syntaxe

static task_continuation_context use_synchronous_execution();

Valeur de retour

Contexte d’exécution synchrone.

Notes

La use_synchronous_execution méthode force la tâche de continuation à s’exécuter de manière synchrone sur le contexte, ce qui entraîne l’achèvement de sa tâche antécédente.

Si la tâche antécédente est déjà terminée lorsque la continuation est attachée, la continuation s’exécute de manière synchrone sur le contexte qui attache la continuation.

Voir aussi

accès concurrentiel Namespace