Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Usando o Threading (guia de programação translation from VPE for Csharp)

Por padrão,um programa C# tem um thread. Este thread executa o código no início e término do programa com o método Main. Todo comando executado pelo Main,direta ou indiretamente,é realizado pela thread principal ou primária,e essa thread termina quando o Main retorna. Porém,threads auxiliares podem ser criadas e usadas para executar código paralelamente à thread primária. Essas threads muitas vezes são chamadas worker threads.

Threads de trabalho podem ser usados para executar tarefas críticas demoradas ou time sem vincular o segmento principal. Por exemplo, segmentos de trabalho são usados em aplicativos de servidor para atender a solicitações de entrada sem aguardar 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 área de trabalho para que o thread principal--que orienta os elementos da interface do usuário--continua a responder às ações do usuário.

Multithreading resolve problemas de throughput e capacidade de resposta, mas também pode introduzir problemas de compartilhamento de recursos, sistema autônomo deadlocks e condições de corrida. Vários threads são melhores para tarefas que exigem recursos diferentes, sistema autônomo identificadores de arquivos, 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 segmentos de trabalho execute demorados ou tarefas de time críticas que não exigem muitos dos recursos usados por outros threads. Naturalmente, alguns recursos em seu programa devem ser acessados por vários segmentos. Nesses casos,o namespace System.Threading fornece classes para a sincronização de threads. Essas classes incluem Mutex, Monitor, Interlocked, AutoResetEvent e ManualResetEvent.

Você pode usar algumas ou todas essas classes para sincronizar as atividades de múltiplos threads, mas algum suporte de multithreading é suportado pela linguagem C#. Por exemplo, a Política de bloquear do C# fornece recursos de sincronização através do uso implícito do Monitor.

Os tópicos a seguir demonstram técnicas comuns de multithreading:

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft