Programação multithread e assíncrona

O threading e a programação assíncrona permitem que a tua aplicação funcione de forma assíncrona em threads paralelos sem bloquear a interface.

A tua aplicação pode usar o pool de threads para realizar trabalho assíncrono em threads paralelos. O pool de threads gere um conjunto de threads e usa uma fila para atribuir itens de trabalho às threads à medida que se tornam disponíveis. O pool de threads é semelhante aos padrões de programação assíncrono disponíveis no Windows Runtime porque pode ser usado para realizar trabalho prolongado sem bloquear a interface, mas o pool de threads oferece mais controlo do que os padrões de programação assíncronos e pode usá-lo para completar múltiplos itens de trabalho em paralelo. Podes usar o pool de tópicos para:

  • Submete itens de trabalho, controla a sua prioridade e cancela os itens de trabalho.
  • Agende os trabalhos usando temporizadores e temporizadores periódicos.
  • Reserve recursos para trabalhos críticos.
  • Executar itens de trabalho em resposta a eventos nomeados e semáforos.

O conjunto de threads é mais eficiente na gestão de threads porque reduz a sobrecarga associada à criação e destruição de threads. Tem acesso para otimizar threads em múltiplos núcleos de CPU e pode equilibrar os recursos das threads entre aplicações e quando as tarefas em segundo plano estão a correr. Usar o pool de threads incorporado é conveniente porque te focas em escrever código que cumpra uma tarefa em vez da mecânica da gestão de threads.

Topic Description
Boas práticas para usar o pool de threads Boas 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 na sua aplicação para Windows.
Crie um item de trabalho periódico Como criar um item de trabalho que se repita periodicamente.
Submeter um item de trabalho ao pool de threads Como executar uma tarefa numa thread separada ao submeter um item de trabalho ao thread pool.
Use um temporizador para submeter um item de trabalho Como criar um item de trabalho que seja executado após o fim de um temporizador.