Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 20310|Resposta: 0

[ASP.NET] ASP.NET usam controladores assíncronos no MVC

[Copiar link]
Publicado em 01/04/2018 15:20:59 | | |
Pool de fios

Sempre quis reescrever o projeto para assíncrono, mas o ASP.NETMVC3 é muito trabalhoso para escrever, .NET 4.5 e ASP.NET código MVC são relativamente simples, a MS sempre gostou disso, cada coisa madura, precisa evoluir várias versões para tender a padronizar. ASP.NET por que você precisa usar assíncrono no MVC? O IIS possui um pool de threads para processar solicitações dos usuários; quando uma nova solicitação chega, as threads do pool serão agendadas para processar a solicitação, mas quando a concorrência é alta, as threads do pool não conseguem mais atender a tantas requisições, e todas as threads do pool estão ocupadas ao processar a solicitação, a thread que processa a solicitação será bloqueada, e a thread não poderá fornecer serviços para outra solicitação; se a fila de requisições estiver cheia, a web O servidor rejeita a solicitação e fica em estado de ocupado HTTP 503. Se você está lidando com uma latência alta, como operações de rede, a maioria dessas threads apenas espera o estado e não faz nada na maior parte do tempo; essas threads podem usar programação assíncrona para fazer melhor uso disso.

Processamento assíncrono

Por exemplo, se uma requisição gera uma chamada de rede que leva dois segundos para ser concluída, a solicitação é feitaLeva dois segundos para ser executado tanto de forma síncrona quanto assíncrona。 MasDurante uma chamada assíncrona, o servidor não bloqueia a resposta a outras solicitações enquanto aguarda a conclusão da primeira solicitação。 Portanto, quando há muitas requisições chamando operações de longa duração, requisições assíncronas podem impedir que as requisições entrem em fila. No .NET 4.5, o pool máximo de threads é de 5000, e as palavras-chave await e async também foram adicionadas no .NET 4.5 para simplificar a programação assíncrona.

Síncrono ou assíncrono (trecho da MSDN)

  • Normalmente, pipelines de sincronização são usados quando as seguintes condições são atendidas:
  • Operação simples ou tempo de funcionamento curto.
  • A simplicidade é mais importante do que a eficiência.
  • Essa operação é principalmente de CPU, e não operações que envolvem muita sobrecarga de disco ou rede. Usar um método de operação assíncrono para operações limitadas à CPU não traz nenhum benefício e também resulta em mais sobrecarga.

Em geral, pipelines assíncronos são usados quando as seguintes condições são atendidas:

  • As operações são ligadas à rede ou E/S, em vez de limitadas à CPU.
  • Testes mostraram que operações de bloqueio são um gargalo para o desempenho do local e, ao usar métodos assíncronos para essas chamadas de bloqueio, o IIS pode atender a mais solicitações.
  • Paralelismo é mais importante do que a simplicidade do código.
  • Você quer fornecer um mecanismo que permita aos usuários cancelar solicitações de longa duração.

ASP.NET usam controladores assíncronos no MVC






Anterior:Tradução de documentos e materiais de aprendizagem do framework WPF mvvm
Próximo:[API do Windows] Assistente de Código para API de Consulta em C# [com código-fonte]
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com