task_continuation_context (Clase)
La clase task_continuation_context
permite especificar dónde se desea que se ejecute una continuación. Solo es útil usar esta clase desde una Windows Runtime aplicación. Para las aplicaciones que no sean de la Windows Runtime, el contexto de ejecución de la continuación de la tarea determina el runtime y no se puede configurar.
Sintaxis
class task_continuation_context : public details::_ContextCallback;
Miembros
Métodos públicos
Nombre | Descripción |
---|---|
get_current_winrt_context | Devuelve un objeto de contexto de continuación de tarea que representa el contexto del subproceso winrt actual. |
use_arbitrary | Crea un contexto de continuación de la tarea que permite elegir el contexto de ejecución para una continuación en el tiempo de ejecución. |
use_current | Devuelve un objeto de contexto de continuación de tarea que representa el contexto de ejecución actual. |
use_default | Crea el contexto de continuación de tarea predeterminado. |
use_synchronous_execution | Devuelve un objeto de contexto de continuación de tarea que representa el contexto de ejecución sincrónico. |
Jerarquía de herencia
_ContextCallback
task_continuation_context
Requisitos
Encabezado: ppltasks.h
Espacio de nombres: simultaneidad
get_current_winrt_context
Devuelve un objeto de contexto de continuación de tarea que representa el contexto del subproceso winRT actual.
Sintaxis
static task_continuation_context get_current_winrt_context();
Valor devuelto
Contexto de subproceso de Windows Runtime actual. Devuelve un task_continuation_context vacío si se llama desde un contexto que no es Windows Runtime.
Comentarios
El get_current_winrt_context
método captura el contexto del subproceso Windows Runtime del autor de la llamada. Devuelve un contexto vacío a los autores de llamadas que no son Windows Runtime.
El valor devuelto por get_current_winrt_context
se puede usar para indicar al Runtime que la continuación debe ejecutarse en el modelo de apartamento del contexto capturado (STA frente a MTA), independientemente de si la tarea anterior es compatible con el apartamento. Una tarea compatible con apartamentos es una tarea que desencapsula una interfaz de Windows Runtime IAsyncInfo
o una tarea que desciende de dicha tarea.
Este método es similar al use_current
método, pero también está disponible para el código nativo de C++ sin compatibilidad con la extensión de C++/CX. Está pensado para su uso por parte de usuarios avanzados que escriben código de biblioteca independiente de C++/CX para los autores de llamadas nativos y de Windows Runtime. A menos que necesite esta funcionalidad, se recomienda el use_current
método, que solo está disponible para los clientes de C++/CX.
use_arbitrary
Crea un contexto de continuación de la tarea que permite elegir el contexto de ejecución para una continuación en el tiempo de ejecución.
Sintaxis
static task_continuation_context use_arbitrary();
Valor devuelto
Contexto de continuación de tareas que representa una ubicación arbitraria.
Comentarios
Cuando se usa este contexto de continuación, la continuación se ejecutará en un contexto que el tiempo de ejecución elija incluso si la tarea antecedente es compatible con el apartamento.
use_arbitrary
se puede usar para desactivar el comportamiento predeterminado de una continuación en una tarea compatible con el apartamento creada en una STA.
Este método solo está disponible para Windows Runtime aplicaciones.
use_current
Devuelve un objeto de contexto de continuación de tarea que representa el contexto de ejecución actual.
static task_continuation_context use_current();
Valor devuelto
Contexto de ejecución actual.
Comentarios
Este método captura el contexto de Windows Runtime del autor de la llamada para que las continuaciones se puedan ejecutar en el apartamento correcto.
El valor devuelto por use_current
se puede usar para indicar al Runtime que la continuación debe ejecutarse en el contexto capturado (STA frente a MTA), independientemente de si la tarea anterior es compatible con el apartamento. Una tarea compatible con apartamentos es una tarea que desencapsula una interfaz de Windows Runtime IAsyncInfo
o una tarea que desciende de dicha tarea.
Este método solo está disponible para Windows Runtime aplicaciones.
use_default
Crea el contexto de continuación de tarea predeterminado.
static task_continuation_context use_default();
Valor devuelto
Contexto de continuación predeterminado.
Comentarios
El contexto predeterminado se usa si no especifica un contexto de continuación al llamar al then
método. En las aplicaciones de Windows para Windows 7 y versiones posteriores, así como las aplicaciones de escritorio en Windows 8 y versiones posteriores, el tiempo de ejecución determina dónde se ejecutarán las continuaciones de tareas. Sin embargo, en una aplicación Windows Runtime, el contexto de continuación predeterminado para una continuación en una tarea compatible con el apartamento es el apartamento donde then
se invoca.
Una tarea compatible con apartamentos es una tarea que desencapsula una interfaz de Windows Runtime IAsyncInfo
o una tarea que desciende de dicha tarea. Por lo tanto, si programa una continuación en una tarea compatible con el apartamento en una Windows Runtime STA, la continuación se ejecutará en ese STA.
Una continuación en una tarea que no sea compatible con el apartamento se ejecutará en un contexto que elija runtime.
task_continuation_context::use_synchronous_execution
Devuelve un objeto de contexto de continuación de tarea que representa el contexto de ejecución sincrónico.
Sintaxis
static task_continuation_context use_synchronous_execution();
Valor devuelto
Contexto de ejecución sincrónico.
Comentarios
El use_synchronous_execution
método obliga a la tarea de continuación a ejecutarse de forma sincrónica en el contexto, lo que provoca la finalización de su tarea antecedente.
Si la tarea antecedente ya se ha completado cuando se adjunta la continuación, la continuación se ejecuta sincrónicamente en el contexto que adjunta la continuación.