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.