Threading gerenciadoManaged Threading

Quer você esteja desenvolvendo para computadores com um processador, quer para com vários, é conveniente que seu aplicativo forneça uma interação mais dinâmica com o usuário, mesmo se o aplicativo, no momento, estiver realizando outro trabalho.Whether you are developing for computers with one processor or several, you want your application to provide the most responsive interaction with the user, even if the application is currently doing other work. Usar vários threads de execução é uma das maneiras mais eficazes de manter seu aplicativo responsivo ao usuário e, ao mesmo tempo, usar o processador entre ou, até mesmo, durante os eventos do usuário.Using multiple threads of execution is one of the most powerful ways to keep your application responsive to the user and at the same time make use of the processor in between or even during user events. Embora esta seção introduza os conceitos básicos de threading, ele se concentra nos conceitos de threading gerenciado e em como usá-lo.While this section introduces the basic concepts of threading, it focuses on managed threading concepts and using managed threading.

Observação

Começando no .NET Framework 4, a programação multi-threaded ficou bastante simplificada com as classes System.Threading.Tasks.Parallel e System.Threading.Tasks.Task, o PLINQ (LINQ paralelo), as novas classes de coleção simultânea no namespace System.Collections.Concurrent e um novo modelo de programação que se baseia no conceito de tarefas e não em threads.Starting with the .NET Framework 4, multithreaded programming is greatly simplified with the System.Threading.Tasks.Parallel and System.Threading.Tasks.Task classes, Parallel LINQ (PLINQ), new concurrent collection classes in the System.Collections.Concurrent namespace, and a new programming model that is based on the concept of tasks rather than threads. Para obter mais informações, consulte Programação paralela.For more information, see Parallel Programming.

Nesta seçãoIn This Section

Noções básicas de threading gerenciadoManaged Threading Basics
Fornece uma visão geral de threading gerenciado e descreve quando usar vários threads.Provides an overview of managed threading and discusses when to use multiple threads.

Usando threads e threadingUsing Threads and Threading
Explica como criar, iniciar, pausar, retomar e abortar threads.Explains how to create, start, pause, resume, and abort threads.

Práticas recomendadas de threading gerenciadoManaged Threading Best Practices
Aborda os níveis de sincronização, como evitar deadlocks e condições de corrida, além de outros problemas de threading.Discusses levels of synchronization, how to avoid deadlocks and race conditions, and other threading issues.

Objetos e recursos de threadingThreading Objects and Features
Descreve as classes gerenciadas que você pode usar para sincronizar as atividades de threads e os dados de objetos acessados em threads diferentes, bem como fornece uma visão geral dos threads de pool do thread.Describes the managed classes you can use to synchronize the activities of threads and the data of objects accessed on different threads, and provides an overview of thread pool threads.

ReferênciaReference

System.Threading
Contém classes para uso e sincronização de threads gerenciados.Contains classes for using and synchronizing managed threads.

System.Collections.Concurrent
Contém classes de coleção que são seguras para uso com vários threads.Contains collection classes that are safe for use with multiple threads.

System.Threading.Tasks
Contém classes para criação e agendamento de tarefas de processamento simultâneo.Contains classes for creating and scheduling concurrent processing tasks.

Domínios do aplicativoApplication Domains
Fornece uma visão geral de domínios do aplicativo e seu uso pelo Common Language Infrastructure.Provides an overview of application domains and their use by the Common Language Infrastructure.

E/S de arquivo assíncronaAsynchronous File I/O
Descreve as vantagens de desempenho e a operação básica da E/S assíncrona.Describes the performance advantages and basic operation of asynchronous I/O.

TAP (Padrão Assíncrono Baseado em Tarefa)Task-based Asynchronous Pattern (TAP)
Fornece uma visão geral do padrão recomendado para programação assíncrona no .NET.Provides an overview of the recommended pattern for asynchronous programming in .NET.

Chamando métodos síncronos de forma assíncronaCalling Synchronous Methods Asynchronously
Explica como chamar métodos nos threads de pool do thread usando recursos internos de representantes.Explains how to call methods on thread pool threads using built-in features of delegates.

Programação paralelaParallel Programming
Descreve as bibliotecas de programação paralela, que simplificam o uso de vários threads em aplicativos.Describes the parallel programming libraries, which simplify the use of multiple threads in applications.

PLINQ (LINQ paralelo)Parallel LINQ (PLINQ)
Descreve um sistema para executar consultas paralelamente, de modo a aproveitar vários processadores.Describes a system for running queries in parallel, to take advantage of multiple processors.