Compartilhar via


Threading (C# e Visual Basic)

Threading permite que seu Visual Basic ou C# o programa para realizar simultâneas de processamento para que você possa fazer mais de uma operação no momento. Por exemplo, você pode usar o threading para monitorar a entrada do usuário, realizar tarefas em segundo plano e manipular fluxos simultâneos de entrada.

Segmentos têm as seguintes propriedades:

  • Segmentos ativar seu programa executar processamento simultâneo.

  • A.NET Framework System.Threading faz do namespace usando segmentos mais fácil.

  • Segmentos compartilham recursos do aplicativo. Para obter mais informações, consulte Usando segmentos e Threading.

Por padrão, um Visual Basic ou C# o programa tem um thread. No entanto, auxiliares threads podem ser criados e usados para executar código em paralelo com o segmento principal. Esses segmentos são chamados de segmentos de trabalho.

Threads de trabalho podem ser usados para executar tarefas demoradas ou de tempo críticas sem obstruir o thread principal. Por exemplo, segmentos de trabalho são usados em aplicativos de servidor para atender a solicitações de entrada sem esperar que a solicitação anterior seja concluída. Threads de trabalho também são usados para executar o "plano de fundo" as tarefas em aplicativos de desktop para o segmento principal – que orienta os elementos de interface do usuário – permanece responde às ações do usuário.

Threading resolve problemas com a capacidade de resposta e throughput, mas ele também pode introduzir problemas de compartilhamento de recursos como, por exemplo, deadlocks e condições de corrida. Vários threads são melhores para tarefas que exigem recursos diferentes, como identificadores de arquivo e conexões de rede. Atribuindo múltiplos threads a um simples recurso provavelmente causará problemas de sincronização e ter threads bloqueados com freqüência enquanto aguarda por outros threads, destrói o propósito de usar múltiplos threads.

Uma estratégia comum é usar os threads de trabalho para executar demorados ou tarefas de tempo crítico que não exigem muitos recursos usados por outros threads. Naturalmente, alguns recursos de seu programa devem ser acessados por vários segmentos. Nesses casos, o System.Threading namespace fornece classes para sincronização de threads. These classes include Mutex, Monitor, Interlocked, AutoResetEvent, and ManualResetEvent.

Você pode usar algumas ou todas essas classes para sincronizar as atividades de vários segmentos, mas algum suporte de threading é compatível com o Visual Basic e C# de idiomas. Por exemplo, o Visual Basic Instrução SyncLock e C# Instrução Lock fornecem recursos de sincronização por meio do uso implícito de Monitor.

ObservaçãoObservação

No .NET Framework versão 4, programação multithread é bastante simplificada com o System.Threading.Tasks.Parallel e System.Threading.Tasks.Task classes, Parallel LINQ PLINQ), nova coleção simultânea de classes de System.Collections.Concurrent namespace e um novo modelo de programação que se baseia no conceito de tarefas em vez de threads. Para obter mais informações, consulte Programação em paralela a.NET Framework.

Tópicos relacionados

Título

Descrição

Aplicativos multithread (C# e Visual Basic)

Descreve como criar e usar segmentos.

Parâmetros e valores de retorno for Multithreaded Procedures (C# e Visual Basic)

Descreve como passar e retornar os parâmetros com aplicativos multithread.

Demonstra Passo a passo: Multithreading com o componente BackgroundWorker (C# e Visual Basic)

Mostra como criar um aplicativo multithreaded simples.

Segmento de sincronização (C# e Visual Basic)

Descreve como controlar as interações de segmentos.

(C# e Visual Basic) de Timers de segmento

Descreve como executar procedimentos em segmentos separados a intervalos fixos.

Thread Pooling (C# e Visual Basic)

Descreve como usar um pool de threads de trabalho que são gerenciados pelo sistema.

Como: Usar um Pool de threads (C# e Visual Basic)

Demonstra o uso de sincronizados de vários segmentos no pool de segmentos.

Threads gerenciadas

Descreve como implementar o threading na .NET Framework.

Capítulos de livros em destaque

ThreadingemC# 3.0 in a Nutshell, Third Edition: A Desktop Quick Reference

Asynchronous MethodsemC# 3.0 in a Nutshell, Third Edition: A Desktop Quick Reference

Threading and SynchronizationemC# 3.0 Cookbook, Third Edition: More than 250 solutions for C# 3.0 programmers