Tarefas leve
Este documento descreve a função de tarefas leves no Runtime de simultaneidade.A tarefa leve é uma tarefa que você agendar diretamente de um concurrency::Scheduler ou concurrency::ScheduleGroup objeto.Uma tarefa simples é semelhante a função que fornece a API do Windows CreateThread função.Portanto, leves tarefas são úteis para adaptar o código existente para usar a funcionalidade de agendamento do Runtime de simultaneidade.O próprio Runtime de simultaneidade usa leves tarefas para agendar a agentes assíncronos e enviar mensagens entre blocos de mensagens assíncronas.
Dica |
---|
O Runtime de simultaneidade oferece um agendador padrão e, portanto, não é necessário criar um em seu aplicativo.Como o Agendador de tarefas Ajuda a ajustar o desempenho de seus aplicativos, recomendamos que você inicie com o A modelos paralela a biblioteca (PPL) ou Biblioteca de agentes assíncrono se você for novo para o Runtime de simultaneidade. |
Tarefas leves carregam menos sobrecarga do que agentes assíncronos e grupos de tarefas.Por exemplo, o runtime não informam quando termina uma tarefa simples.Além disso, o runtime não capturar ou manipular exceções lançadas de uma tarefa simples.Para obter mais informações sobre tarefas leves e manipulação de exceção, consulte Manipulação de exceção em tempo de execução de concorrência.
Para a maioria das tarefas, recomendamos que você usar a funcionalidade mais robusta, como grupos de tarefas e algoritmos paralelos porque eles permitem mais facilmente Dividir tarefas complexas nos mais básicos.Para obter mais informações sobre grupos de tarefas, consulte Paralelismo de tarefa (tempo de execução de simultaneidade).Para obter mais informações sobre algoritmos paralelos, consulte Algoritmos paralelos.
Para criar uma tarefa leve, chamar o concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask, ou concurrency::Scheduler::ScheduleTask método.Para aguardar a concluir uma tarefa leve, aguarde o Agendador pai desligar ou usar um mecanismo de sincronização, como um concurrency::event objeto.
Exemplo
Para obter um exemplo que demonstra como adaptar o código existente para usar uma tarefa leve, consulte Passo a passo: Adaptando o código existente para usar tarefas leve.
Consulte também
Tarefas
Passo a passo: Adaptando o código existente para usar tarefas leve