Pular para o conteúdo principal

Questão de Programação — C Sharp — Quadrix 2025

ProgramaçãoC Sharp
Código
qg596721
Banca
Quadrix
Órgão
CRC-SP
Ano
2025
Nível
Superior
Cargo
Analista de Desenvolvimento
Quanto às tecnologias para o desenvolvimento web, julgue o item seguinte.O C# não suporta programação assíncrona, sendo necessário utilizar apenas threads para lidar com tarefas simultâneas.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Programação assíncrona em C#

Gabarito: E — ERRADO. A afirmação está incorreta porque o C# suporta programação assíncrona nativamente, por meio das palavras-chave async e await, além de oferecer a classe Task e o Task Parallel Library (TPL). Threads são apenas uma das formas de lidar com concorrência, mas não a única — e a programação assíncrona não se confunde com o uso direto de threads.

A programação assíncrona é um paradigma que permite que uma operação demorada (como acesso a banco de dados, chamadas HTTP ou leitura de arquivos) seja executada sem bloquear a thread principal da aplicação. Em vez de ficar esperando a operação terminar, o programa continua executando outras tarefas e, quando a operação é concluída, o fluxo retorna ao ponto de continuação. No C#, isso é feito com os modificadores async e await: um método marcado como async pode usar await para aguardar uma operação assíncrona sem travar a thread. A classe Task representa uma operação assíncrona que pode ser aguardada, e o TPL oferece paralelismo de dados e tarefas.

A confusão entre assíncrono e threads é comum. Threads são unidades de execução que rodam concorrentemente, mas a programação assíncrona não exige a criação de threads: ela pode ser implementada com um único thread, usando técnicas como callbacks, eventos ou o modelo async/await, que aproveita o tempo ocioso da thread para executar outras tarefas. Por exemplo, em uma aplicação web, cada requisição pode ser tratada de forma assíncrona sem criar uma thread por requisição — o que melhora a escalabilidade. O C# também suporta threads (via System.Threading.Thread), mas isso é uma opção, não uma obrigação.

A banca explora exatamente essa confusão: o candidato que sabe que C# tem threads pode achar que a afirmação está correta, mas ela é falsa porque o C# suporta programação assíncrona — e isso é um recurso da linguagem, não uma limitação. A pegadinha está em afirmar que "não suporta" e que "é necessário usar apenas threads", quando na verdade a linguagem oferece mecanismos assíncronos muito mais elegantes e eficientes.

Guarde a distinção: assíncrono é sobre não bloquear a execução; threads é sobre executar em paralelo. O C# oferece ambos, e a programação assíncrona moderna usa async/await, não threads explícitas.

1Suporte nativo
async / await
Classe Task
TPL (Task Parallel Library)
2Assíncrono ≠ Threads
Assíncrono: não bloqueia a execução
Threads: execução em paralelo
3Vantagem
Escalabilidade (sem thread por requisição)
Programação assíncrona em C#
LEVELsoulevel.com.br
Programação assíncrona em C#: Suporte nativo (async / await, Classe Task, TPL (Task Parallel Library)); Assíncrono ≠ Threads (Assíncrono: não bloqueia a execução, Threads: execução em paralelo); Vantagem (Escalabilidade (sem thread por requisição))

Alternativa E — ✅ Correta (gabarito)

A afirmação é falsa, portanto a alternativa correta é E — Errado. O C# suporta programação assíncrona desde a versão 5.0, com async e await, e a classe Task permite aguardar operações sem bloquear a thread. Threads são uma alternativa, mas não a única — e a programação assíncrona é um recurso nativo da linguagem, amplamente utilizado em aplicações web e desktop.

PEGA ESSA DICA!

Na prova, desconfie de afirmações com "apenas", "somente" ou "necessário" — elas costumam ser falsas quando a tecnologia oferece mais de uma abordagem. Aqui, a banca tenta fazer você acreditar que C# não tem suporte a assíncrono, mas a linguagem tem async/await desde 2012. Lembre-se: assíncrono ≠ threads.

Gabarito: E — ERRADO.

Link permanente: /questoes/qg596721