Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 20310|Odpowiedź: 0

[ASP.NET] ASP.NET używać asynchronicznych kontrolerów w MVC

[Skopiuj link]
Opublikowano 01.04.2018 15:20:59 | | |
Pula wątków

Zawsze chciałem przepisać projekt na asynchroniczny, ale ASP.NETMVC3 jest zbyt uciążliwy do napisania, .NET 4.5 i ASP.NET kod MVC jest stosunkowo prosty, Microsoft wydaje się zawsze lubił to robić, każda dojrzała rzecz musi ewoluować kilka wersji, by się ustandaryzować. ASP.NET dlaczego w MVC trzeba używać asynchroniczności? IIS ma pulę wątków do przetwarzania żądań użytkowników. Gdy pojawia się nowe żądanie, wątki w puli są zaplanowane do jego przetwarzania, jednak gdy współbieg jest wysoki, wątki w puli nie mogą już spełniać tylu żądań, a każdy wątek w puli jest zajęty podczas przetwarzania żądania, wątek przetwarzający żądanie zostanie zablokowany, a wątek nie może świadczyć usług innemu żądaniu, jeśli kolejka żądań jest pełna, sieć Serwer odrzuca żądanie i znajduje się w stanie zajętego HTTP 503. Jeśli masz do czynienia z wysokim opóźnieniem, na przykład operacjami sieciowymi, większość tych wątków po prostu czeka na stan i przez większość czasu nic nie robi, takie wątki mogą korzystać z programowania asynchronicznego, aby lepiej je wykorzystać.

Przetwarzanie asynchroniczne

Na przykład, jeśli żądanie generuje połączenie sieciowe, którego wykonanie trwa dwie sekundy, żądanie jest realizowaneWykonanie trwa dwie sekundy zarówno synchronicznie, jak i asynchronicznie。 AlePodczas połączenia asynchronicznego serwer nie blokuje odpowiedzi na inne żądania, czekając na zakończenie pierwszego żądania。 Dlatego gdy wiele żądań wywołuje długotrwałe operacje, żądania asynchroniczne mogą uniemożliwić kolejkowanie żądań. W .NET 4.5 maksymalna pula wątków wynosi 5000, a słowa kluczowe oczekiwania i async zostały również dodane w .NET 4.5, aby uprościć programowanie asynchroniczne.

Synchroniczne lub asynchroniczne (fragment z MSDN)

  • Zazwyczaj potoki synchronizacyjne są używane, gdy spełnione są następujące warunki:
  • Prosta obsługa lub krótki czas działania.
  • Prostota jest ważniejsza niż efektywność.
  • Operacja ta polega głównie na operacjach CPU, a nie na dużych narzutach dysku lub sieci. Stosowanie asynchronicznej metody pracy do operacji ograniczonych od procesora nie przynosi żadnych korzyści i powoduje większe narzuty.

Ogólnie rzecz biorąc, potoki asynchroniczne są stosowane, gdy spełnione są następujące warunki:

  • Operacje są ograniczone od sieci lub I/O, a nie od procesora.
  • Testy wykazały, że operacje blokujące są wąskim gardłem dla wydajności stanowiska, a dzięki zastosowaniu asynchronicznych metod do tych wywołań IIS może obsługiwać więcej żądań.
  • Paralelizm jest ważniejszy niż prostota kodu.
  • Chcesz zapewnić mechanizm, który pozwala użytkownikom anulować długoletnie żądania.

ASP.NET używać asynchronicznych kontrolerów w MVC






Poprzedni:WPF mvvm framework stylet tłumaczenia dokumentów i materiały edukacyjne
Następny:[Windows API] Asystent kodu dla C# Query API [z kodem źródłowym]
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com