Programação threading e assíncronaThreading and async programming

A programação threading e assíncrona permite que seu aplicativo realize o trabalho de forma assíncrona em threads paralelos.Threading and async programming enables your app to accomplish work asynchronously in parallel threads.

O aplicativo pode usar o pool de threads para realizar o trabalho de forma assíncrona em threads paralelos.Your app can use the thread pool to accomplish work asynchronously in parallel threads. 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.The thread pool manages a set of threads and uses a queue to assign work items to threads as they become available. O pool de threads é semelhante aos padrões de programação assíncrona disponíveis no Windows Runtime porque ele pode ser usado para realizar o 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íncrona e você pode usá-lo para concluir vários itens de trabalho em paralelo.The thread pool is similar to the asynchronous programming patterns available in the Windows Runtime because it can be used to accomplish extended work without blocking the UI, but the thread pool offers more control than the asynchronous programming patterns and you can use it to complete multiple work items in parallel. Você pode usar o pool de threads para:You can use the thread pool to:

  • Enviar itens de trabalho, controlar sua prioridade e cancelar itens de trabalho.Submit work items, control their priority, and cancel work items.

  • Programar itens de trabalho usando timers e temporizadores periódicos.Schedule work items using timers and periodic timers.

  • Reserve recursos para itens de trabalho crítico.Set aside resources for critical work items.

  • Os itens de trabalho são executados em resposta a eventos nomeados e semáforos.Run work items in response to named events and semaphores.

O pool de threads é mais eficiente no gerenciamento de threads porque reduz a sobrecarga de criação e destruição de threads.The thread pool is more efficient at managing threads because it reduces the overhead of creating and destroying threads. Isso significa que ele tem acesso para otimizar os threads em vários núcleos de CPU e pode equilibrar os recursos de threads entre os aplicativos e quando as tarefas em segundo plano estão sendo executadas.The means it has access to optimize threads across multiple CPU cores, and it can balance thread resources between apps and when background tasks are running. 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 de gerenciamento de threads.Using the built-in thread pool is convenient because you focus on writing code that accomplishes a task instead of the mechanics of thread management.

TópicoTopic DescriçãoDescription
Programação assíncrona (aplicativos UWP)Asynchronous programming (UWP apps) Este tópico descreve a programação assíncrona na UWP (Plataforma Universal do Windows) e sua declaração em C#, Microsoft Visual Basic .NET e extensões de componentes Visual C++ (C++/CX) e JavaScript.This topic describes asynchronous programming in the Universal Windows Platform (UWP) and its representation in C#, Microsoft Visual Basic .NET, Visual C++ component extensions (C++/CX), and JavaScript.
Programação assíncrona em C++/CX (aplicativos UWP)Asynchronous programming in C++/CX (UWP apps) Este artigo descreve a maneira recomendada de consumir métodos assíncronos em C++/CX usando a classe taskconcurrency que é definida no namespace em ppltasks.h.This article describes the recommended way to consume asynchronous methods in C++/CX by using the task class that's defined in the concurrency namespace in ppltasks.h.
Práticas recomendadas para usar o pool de threadsBest practices for using the thread pool Este tópico descreve práticas recomendadas para trabalhar com o pool de threads.This topic describes best practices for working with the thread pool.
Chamar APIs assíncronas no Visual Basic ou C#Call asynchronous APIs in C# or Visual Basic A Plataforma Universal do Windows (UWP) inclui muitas APIs assíncronas para garantir que o seu aplicativo permaneça responsivo ao executar trabalhos demorados.The Universal Windows Platform (UWP) includes many asynchronous APIs to ensure that your app remains responsive when it does work that might take an extended amount of time. Este tópico descreve como usar métodos assíncronos da UWP em C# ou Microsoft Visual Basic.This topic discusses how to use asynchronous methods from the UWP in C# or Microsoft Visual Basic.
Criar um item de trabalho periódicoCreate a periodic work item Saiba como criar um item de trabalho periódico que se repete periodicamente.Learn how to create a work item that repeats periodically.
Enviar um item de trabalho ao pool de threadsSubmit a work item to the thread pool Aprenda a trabalhar em um thread separado enviando um item de trabalho ao pool de threads.Learn how to do work in a separate thread by submitting a work item to the thread pool.
Usar um temporizador para enviar um item de trabalhoUse a timer to submit a work item Saiba como criar um item de trabalho que seja executado após um temporizador.Learn how to create a work item that runs after a timer elapses.