Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 20310|Yanıt: 0

[ASP.NET] ASP.NET MVC'de asenkron kontrolörler kullanır

[Bağlantıyı kopyala]
Yayınlandı 1.04.2018 15:20:59 | | |
İplik havuzu

Projeyi her zaman asenkron olarak yeniden yazmak istemişimdir, ama ASP.NETMVC3 yazması çok zahmetli, .NET 4.5 ve ASP.NET MVC kodu nispeten basit, MS bunu her zaman sevmiş gibi görünüyor, her olgun şey, standartlaştırmak için birkaç versiyonu evrimleştirmek zorunda. ASP.NET neden MVC'de asenkron kullanmanız gerekiyor, IIS'in kullanıcı taleplerini işlemek için bir iş parçacığı havuzu var, yeni bir istek geldiğinde havuzdaki iş parçacıkları isteği işlemek üzere planlanacak, ancak eşzamanlılık yüksek olduğunda havuzdaki iş parçacıkları artık bu kadar çok isteği karşılayamaz ve havuzdaki her iş parçacığı isteği işlerken meşgul olur, isteği işleyen iş parçacığı engellenir ve iş parçacığı başka bir talebe hizmet sağlayamıyor, istek kuyruğu doluysa, web Sunucu isteği reddeder ve HTTP 503 yoğun bir durumdadır. Eğer yüksek gecikmeyle karşılaşıyorsanız, örneğin ağ işlemleri, bu iş parçacıklarının çoğu sadece durumu bekliyor ve çoğu zaman hiçbir şey yapmaz, bu tür iş parçacıkları daha iyi kullanmak için asenkron programlama kullanabilir.

Asenkron işleme

Örneğin, bir istek tamamlanması iki saniye süren bir ağ çağrısı oluşturursa, istek yapılırHem eşzamanlı hem de asenkron olarak çalıştırılması iki saniye sürer。 AmaAsenkron bir çağrı sırasında, sunucu ilk isteğin tamamlanmasını beklerken diğer isteklere yanıtı engellemez。 Bu nedenle, uzun süreli işlemleri çağıran birçok istek olduğunda, asenkron istekler sıraya girmesini engelleyebilir. .NET 4.5'te maksimum iş parçacığı havuzu 5000'dir ve await ve async anahtar kelimeler de .NET 4.5'te asenkron programlamayı kolaylaştırmak için eklenmiştir.

Senkron veya asenkron (MSDN'den alıntı)

  • Genellikle, senkronizasyon boru hatları aşağıdaki koşullar sağlandığında kullanılır:
  • Basit işlem veya kısa çalışma süresi.
  • Sadelik, verimlilikten daha önemlidir.
  • Bu işlem, çok fazla disk veya ağ yükü gerektiren işlemlerden ziyade öncelikle CPU işlemleridir. CPU bağlantılı işlemler için asenkron bir çalışma yöntemi kullanmak hiçbir fayda sağlamaz ve ayrıca daha fazla yük yaratır.

Genel olarak, asenkron boru hatları aşağıdaki koşullar karşılandığında kullanılır:

  • İşlemler CPU bağımlısı yerine ağ veya G/Çıkış bağlantılıdır.
  • Testler, engelleme işlemlerinin site performansında bir darboğaz olduğunu göstermiştir ve bu engelleme çağrıları için asenkron yöntemler kullanılarak IIS daha fazla isteğe hizmet verebilir.
  • Paralellik, kodun basitliğinden daha önemlidir.
  • Kullanıcıların uzun süreli istekleri iptal etmesini sağlayan bir mekanizma sağlamak istiyorsunuz.

ASP.NET MVC'de asenkron kontrolörler kullanır






Önceki:WPF mvvm framework stylet belge çevirisi ve öğrenme materyalleri
Önümüzdeki:[Windows API] C# Sorgu API için Kod Asistanı [kaynak kodu ile]
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com