Compartilhar via


Threading (C# e Visual Basic)

Threading permite que seu Visual Basic ou C# o programa para executar processamento simultâneo para que você possa fazer mais de uma operação de cada vez. 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 espaço para nome usando segmentos mais fácil.

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

Por padrão, um Visual Basic ou C# o programa possui um segmento. No entanto, segmentos auxiliares 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 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 tarefas de "plano de fundo" em aplicativos de desktop para que o thread principal – o que aumenta a elementos de interface do usuário – permanece responde às ações do usuário.

Threading resolve problemas com o throughput e capacidade de resposta, 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 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 em 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 BasicInstrução SyncLock e C# Instrução Lock fornecem recursos de sincronização por meio do uso implícito de Monitor

Dica

No .NET Framework 4, programação multithread é bastante simplificada com o Parallel e Task classes, LINQ paralelo (PLINQ), classes nova coleção simultânea a 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 paralela no .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 para procedimentos multithread (C# e Visual Basic)

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

Instruções passo a passo: multithreading com o componente BackgroundWorker (C# e Visual Basic)

Mostra como criar um aplicativo multithreaded simples.

Sincronização de thread (C# e Visual Basic)

Descreve como controlar as interações de segmentos.

Temporizadores de thread (C# e Visual Basic)

Descreve como executar procedimentos em segmentos separados a intervalos fixos.

Pooling de thread (C# e Visual Basic)

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

Como usar um pool de thread (C# e Visual Basic)

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

Threading gerenciado

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