Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 20310|Respuesta: 0

[ASP.NET] ASP.NET usar controladores asíncronos en MVC

[Copiar enlace]
Publicado en 1/4/2018 15:20:59 | | |
Conjunto de hilos

Siempre he querido reescribir el proyecto a asincrónico, pero ASP.NETMVC3 es demasiado engorroso de escribir, .NET 4.5 y ASP.NET código MVC son relativamente sencillos, MS parece que siempre ha gustado hacer esto, cada cosa madura, tiene que evolucionar varias versiones para tender a estandarizarse. ASP.NET ¿por qué necesitas usar asíncrono en MVC? IIS tiene un pool de hilos para procesar las solicitudes de los usuarios; cuando llega una nueva petición, los hilos del pool se programan para procesar la solicitud, pero cuando la concurrencia es alta, los hilos del pool ya no pueden atender tantas peticiones, y todos los hilos del pool están ocupados al procesar la solicitud, el hilo que procesa la solicitud será bloqueado y el hilo no podrá proporcionar servicios a otra petición; si la cola de peticiones está llena, la web El servidor rechaza la solicitud y está en estado ocupado HTTP 503. Si estás lidiando con una latencia alta, como operaciones de red, la mayoría de estos hilos simplemente esperan el estado y no hacen nada la mayor parte del tiempo; estos hilos pueden usar programación asíncrona para aprovecharlo mejor.

Procesamiento asincrónico

Por ejemplo, si una solicitud genera una llamada de red que tarda dos segundos en completarse, la petición se realizaSe tarda dos segundos en ejecutarse tanto de forma síncrona como asíncrona。 PeroDurante una llamada asincrónica, el servidor no bloquea la respuesta a otras solicitudes mientras espera a que se complete la primera petición。 Por lo tanto, cuando hay muchas solicitudes que llaman a operaciones de larga duración, las solicitudes asíncronas pueden impedir que las peticiones entren en cola. En .NET 4.5, el pool máximo de hilos es de 5000, y las palabras clave await y async también se han añadido en .NET 4.5 para simplificar la programación asíncrona.

Sincrónico o asíncrono (extracto de MSDN)

  • Normalmente, se utilizan pipelines de sincronización cuando se cumplen las siguientes condiciones:
  • Operación simple o tiempo de ejecución corto.
  • La simplicidad es más importante que la eficiencia.
  • Esta operación es principalmente de CPU más que operaciones que impliquen una gran sobrecarga de disco o red. Usar un método de operación asíncrono para operaciones con CPU no aporta ningún beneficio y además resulta en más sobrecarga.

En general, se utilizan tuberías asíncronas cuando se cumplen las siguientes condiciones:

  • Las operaciones están ligadas a la red o a las emisiones, en lugar de a la CPU.
  • Las pruebas han demostrado que las operaciones de bloqueo son un cuello de botella para el rendimiento del sitio, y al usar métodos asíncronos para estas llamadas de bloqueo, IIS puede atender más solicitudes.
  • El paralelismo es más importante que la simplicidad del código.
  • Quieres proporcionar un mecanismo que permita a los usuarios cancelar solicitudes de larga duración.

ASP.NET usar controladores asíncronos en MVC






Anterior:Traducción de documentos y materiales de aprendizaje del marco WPF mvvm
Próximo:[API de Windows] Asistente de código para API de consultas en C# [con código fuente]
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com