Programação threading e assíncrona

O threading e a programação assíncrona permitem que seu aplicativo realize o trabalho de forma assíncrona em threads paralelos sem bloquear a interface do usuário.

Seu aplicativo pode usar o pool de threads para executar tarefas de forma assíncrona em threads paralelas. O pool de threads gerencia um conjunto de threads e usa uma fila para atribuir itens de trabalho a threads à medida que eles se tornam disponíveis. O pool de threads é semelhante aos padrões de programação assíncronos disponíveis no Windows Runtime porque ele pode ser usado para realizar um trabalho estendido sem bloquear a interface do usuário, mas o pool de threads oferece mais controle do que os padrões de programação assíncronos e você pode usá-lo para concluir vários itens de trabalho em paralelo. Você pode usar o pool de threads para:

  • Envie itens de trabalho, controle sua prioridade e cancele itens de trabalho.
  • Agende itens de trabalho usando temporizadores e temporizadores periódicos.
  • Reserve recursos para itens de trabalho críticos.
  • Execute itens de trabalho em resposta a eventos nomeados e semáforos.

O pool de threads é mais eficiente no gerenciamento de threads porque reduz a sobrecarga de criar e destruir threads. Ele tem acesso para otimizar threads em vários núcleos de CPU e pode equilibrar recursos de thread entre aplicativos e quando as tarefas em segundo plano estão em execução. Usar o pool de threads interno é conveniente porque você se concentra na escrita de código que realiza uma tarefa em vez da mecânica do gerenciamento de threads.

Tópico Description
Práticas recomendadas para usar o pool de threads Melhores práticas para trabalhar com o pool de threads.
Chamar APIs assíncronas em C# ou Visual Basic Como usar APIs assíncronas em C# ou Visual Basic em seu aplicativo Windows.
Criar um item de trabalho periódico Como criar um item de trabalho que se repete periodicamente.
Enviar um item de trabalho para o pool de threads Como fazer o trabalho em um thread separado enviando um item de trabalho para o pool de threads.
Usar um temporizador para enviar um item de trabalho Como criar um item de trabalho para ser executado após o término de um temporizador.