Tareas ligeras

En este documento se describe el rol de las tareas ligeras en el runtime de simultaneidad. Una tarea ligera es una tarea que programa directamente a partir del objeto ScheduleGroup o Scheduler. Una tarea ligera recuerda a la función que se proporciona a la función de la API de Windows CreateThread. Por consiguiente, las tareas ligeras son útiles cuando se adapta código existente para usar la funcionalidad de programación del Runtime de simultaneidad. El propio Runtime de simultaneidad utiliza las tareas ligeras para programar los agentes asincrónicos y enviar mensajes entre los bloques de mensajes asincrónicos.

SugerenciaSugerencia

El runtime de simultaneidad proporciona un programador predeterminado y, por tanto, no es necesario crear uno en la aplicación. Dado que el programador de tareas ayuda a ajustar el rendimiento de las aplicaciones, se recomienda que comience con Parallel Patterns Library (PPL) o Biblioteca de agentes asincrónicos si no ha usado antes el runtime de simultaneidad.

Las tareas ligeras llevan menos sobrecarga que los agentes asincrónicos y los grupos de tareas. Por ejemplo, el runtime no informa cuando finaliza una tarea ligera. Además, el runtime no detecta ni administra las excepciones que se producen desde una tarea ligera. Para obtener más información sobre control de excepciones y tareas ligeras, vea Control de excepciones en el runtime de simultaneidad.

Para la mayoría de las tareas, recomendamos utilizar funcionalidad más robusta, como grupos de tareas y algoritmos paralelos, porque permiten descomponer más fácilmente tareas complejas en tareas más básicas. Para obtener más información acerca de los grupos de tareas, vea Paralelismo de tareas (Runtime de simultaneidad). Para obtener más información acerca de los algoritmos paralelos, vea Algoritmos paralelos.

Para crear una tarea ligera, llame al método Concurrency::ScheduleGroup::ScheduleTask, Concurrency::CurrentScheduler::ScheduleTask o Concurrency::Scheduler::ScheduleTask. Para esperar a que una tarea ligera finalice, espere a que el programador primario se cierre o use un mecanismo de sincronización como, por ejemplo, un objeto Concurrency::event.

Ejemplo

Para obtener un ejemplo que muestra cómo adaptar el código existente para utilizar una tarea ligera, vea Tutorial: Adaptar el código existente para usar tareas ligeras.

Vea también

Conceptos

Programador de tareas (Runtime de simultaneidad)

Otros recursos

Tutorial: Adaptar el código existente para usar tareas ligeras

Historial de cambios

Fecha

Historial

Motivo

Julio de 2010

Contenido reorganizado.

Mejora de la información.