Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 20310|Risposta: 0

[ASP.NET] ASP.NET usano controller asincroni in MVC

[Copiato link]
Pubblicato su 01/04/2018 15:20:59 | | |
Pool di fili

Ho sempre voluto riscrivere il progetto in asincrono, ma ASP.NETMVC3 è troppo macchinoso da scrivere, .NET 4.5 e ASP.NET codice MVC sono relativamente semplici, MS sembra aver sempre amato farlo, ogni cosa matura deve evolvere diverse versioni per tendere a standardizzarsi. ASP.NET perché è necessario usare asincrono in MVC, IIS ha un pool di thread per elaborare le richieste degli utenti; quando arriva una nuova richiesta, i thread del pool vengono programmati per elaborare la richiesta, tuttavia, ma quando la concorrenza è alta, i thread nel pool non possono più soddisfare molte richieste, e ogni thread del pool è occupato durante l'elaborazione della richiesta, il thread che elabora la richiesta verrà bloccato e il thread non potrà fornire servizi a un'altra richiesta; se la coda delle richieste è piena, il web Il server rifiuta la richiesta ed è in uno stato di occupazione HTTP 503. Se hai a che fare con una latenza elevata, come operazioni di rete, la maggior parte di questi thread aspetta semplicemente lo stato e non fa nulla la maggior parte del tempo; tali thread possono usare la programmazione asincrona per sfruttarla meglio.

Elaborazione asincrona

Ad esempio, se una richiesta genera una chiamata di rete che richiede due secondi per essere completata, la richiesta viene effettuataCi vogliono due secondi per essere eseguita sia in modo sincrono che asincrono。 MaDurante una chiamata asincrona, il server non blocca la risposta ad altre richieste mentre attende che la prima richiesta venga completata。 Pertanto, quando ci sono molte richieste che chiamano operazioni di lunga durata, le richieste asincrone possono impedire che le richieste vengano messe in coda. In .NET 4.5, il pool massimo di thread è 5000, e le parole chiave await e async sono state aggiunte anche in .NET 4.5 per semplificare la programmazione asincrona.

Sincrono o asincrono (estratto dalla MSDN)

  • Tipicamente, le pipeline di sincronizzazione vengono utilizzate quando sono soddisfatte le seguenti condizioni:
  • Funzionamento semplice o durata breve.
  • La semplicità è più importante dell'efficienza.
  • Questa operazione riguarda principalmente operazioni CPU piuttosto che operazioni che comportano un grande sovraccarico di disco o rete. Usare un metodo operativo asincrono per operazioni legate alla CPU non fornisce alcun beneficio e comporta anche un sovraccarico maggiore.

In generale, le pipeline asincrone sono utilizzate quando sono soddisfatte le seguenti condizioni:

  • Le operazioni sono legate alla rete o I/O piuttosto che legate alla CPU.
  • I test hanno dimostrato che le operazioni di blocco rappresentano un collo di bottiglia per le prestazioni del sito e, utilizzando metodi asincroni per queste chiamate di blocco, IIS può gestire più richieste.
  • Il parallelismo è più importante della semplicità del codice.
  • Vuoi fornire un meccanismo che permetta agli utenti di cancellare richieste di lunga durata.

ASP.NET usano controller asincroni in MVC






Precedente:Traduzione e materiali di apprendimento del framework WPF mvvm
Prossimo:[Windows API] Assistente codice per API di query C# [con codice sorgente]
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com