Simultaneidade C#

Esta série de simultaneidade C# ajuda você a dominar a programação multithreading e assíncrona em C# e mostra como usar a simultaneidade C# para melhorar o desempenho do aplicativo.

O que você aprenderá

  • Entenda os conceitos básicos, incluindo threads, processos e a diferença entre threads e processos.
  • Utilize totalmente o poder da biblioteca paralela de tarefas (TPL) usando objetos Task.
  • Entenda profundamente como o async/await funciona em C#.

Seção 1. Multithreading

Esta seção ajuda você a compreender os conceitos básicos de thread e multithreading em C# e a construir uma base sólida para o desenvolvimento de aplicativos assíncronos.

  • Thread – entenda o objeto Thread e como criar uma aplicação multithreading em C#.
  • Thread de segundo plano – entenda os threads de segundo plano e as diferenças entre os threads de segundo plano e de primeiro plano.
  • ThreadPool – aprenda como usar o pool de threads para gerenciar threads com mais eficiência.

Seção 2. Programação Assíncrona Baseada em Tarefas (TAP)

A programação assíncrona baseada em tarefas (TAP) é o modelo de programação moderno em C# que simplifica o processo de escrita de código assíncrono.

  • Tarefa – explica o modelo de programação assíncrona baseado em tarefas e mostra como usar a Taskclasse para criar operações assíncronas que podem ser executadas simultaneamente.
  • Encadear múltiplas tarefas – mostra como usar o ContinueWith()método da Taskclasse para encadear múltiplas tarefas.
  • Lidar com exceções – aprenda como lidar com AggregateExceptionexceções lançadas por operações assíncronas executadas por tarefas.
  • Async/Await – mostra como usar as async/awaitpalavras-chave para criar métodos que são executados de forma assíncrona.
  • Cancelando uma operação assíncrona – saiba como cancelar uma operação assíncrona usando o token de cancelamento.
  • Task.WhenAny() – aguarde a conclusão da primeira tarefa em uma coleção de tarefas e processe o resultado dessa tarefa.
  • Task.WhenAll() – aguarde a conclusão de todas as tarefas em uma coleção de tarefas.

Seção 3. Sincronização de Threads

Esta seção mostra como coordenar a execução de vários threads para garantir que eles acessem os recursos compartilhados de maneira segura para threads e evitar condições de corrida, bem como outros problemas de sincronização.

  • Instrução lock – mostra como usar a instrução lock para evitar o risco de condições de corrida e sincronização quando várias tarefas (ou threads) tentam acessar os mesmos recursos compartilhados.
  • Impasse – entenda o que é um impasse, como ele ocorre e como resolvê-lo usando diversas técnicas.
  • Interlocked – aprenda como realizar operações atômicas em uma variável compartilhada usando métodos da classe Interlocked.
  • ReaderWriterLockSlim – orienta você sobre como usar a ReaderWriterLockSlimclasse para permitir que vários threads leiam de um recurso compartilhado simultaneamente, evitando que outros threads façam gravações simultâneas.
  • SemaphoreSlim – aprenda como usar o objeto semáforo para limitar o número de threads que acessam recursos compartilhados simultaneamente.

Seção 4. Sinalização de Thread

Esta seção mostra como se comunicar entre threads por meio de sinais usando objetos de sinalização, incluindo AutoResetEvent, ManualResetEventSlim e CountDownEvent.

  • AutoResetEvent – ​​aprenda como enviar sinais entre threads usando o AutoResetEventobjeto.
  • ManualResetEvent – ​​mostra como usar a ManualResetEventSlimclasse para sinalizar eventos entre threads.
  • CountdownEvent – ​​orienta você sobre como usar o CountdownEventobjeto para esperar por um número especificado de eventos antes de continuar a execução em threads em espera.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *