SORU
30 EYLÜL 2013, PAZARTESİ


MVC5 ile uyumsuz kullanmanın avantajı nedir?

Arasındaki fark nedir:

public ActionResult Login(LoginViewModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        IdentityResult result = IdentityManager.Authentication.CheckPasswordAndSignIn(AuthenticationManager, model.UserName, model.Password, model.RememberMe);
        if (result.Success)
        {
            return Redirect("~/home");
        }
        else
        {
            AddErrors(result);
        }
    }
    return View(model);
}

ve:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        IdentityResult result = await IdentityManager.Authentication.CheckPasswordAndSignInAsync(AuthenticationManager, model.UserName, model.Password, model.RememberMe);
        if (result.Success)
        {
            return Redirect("~/home");
        }
        else
        {
            AddErrors(result);
        }
    }
    return View(model);
}

MVC kod şimdi ama fark nedir uyumsuz olduğunu görüyorum. Biri diğerinden daha çok daha iyi performans verir? Başka bir sorun hata ayıklama için daha mı kolay? Benim uygulama zaman Uyumsuz eklemek için diğer denetleyicileri değişiklik yapmak gerekir ?

CEVAP
30 EYLÜL 2013, PAZARTESİ


Zaman uyumsuz eylemlerden uzak sunucu çağırır gibi bağlı işlemleri G/Ç gerçekleştirmek için yararlıdır. Zaman uyumsuz çağrı yararı G/Ç işlemi sırasında, ASP.NET iş parçacığı kullanılıyor. Burada ilk örnek, nasıl çalışır:

  1. Bir istek vurduğu eylem, ASP.NET iş parçacığı havuzu bir konu alır ve yürütme başlar.
  2. IdentityManager.Authentication.CheckPasswordAndSignIn yöntemi çağrılır. Bu engelleme arama ->tüm görüşme sırasında iş parçacığı tehlikeye atılmıştır.

Ve burada ikinci aramayı nasıl çalışır:

  1. Bir istek vurduğu eylem, ASP.NET iş parçacığı havuzu bir konu alır ve yürütme başlar.
  2. IdentityManager.Authentication.CheckPasswordAndSignInAsync döner hemen verilir. G/Ç Tamamlanma bağlantı Noktası kaydedilir ve ASP.NET iş parçacığı iş parçacığı havuzu için serbest bırakılır.
  3. İşlem tamamlandıktan, G/Ç Tamamlama bağlantı noktası sinyal daha sonra, başka bir iş parçacığı iş parçacığı havuzu manzarası dönen bitirmek için çizilir.

İkinci durumda gördüğünüz gibi ASP.NET çalışan iş parçacığı kısa bir süre için sadece kullanılır. Bu diğer istekleri hizmet için havuza daha fazla iş parçacığı geçerli olduğu anlamına gelir.

Yani sonuç olarak, doğru zaman uyumsuz API içinde yalnızca zaman uyumsuz eylemler kullanın. Eğer uyumsuz bir eylem içinde engelleme arama yaparsanız, tüm fayda öldürüyorsun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007
  • macpulenta

    macpulenta

    9 EYLÜL 2006
  • magnum33563

    magnum33563

    8 NİSAN 2011