2013-02-27 24 views
7

Kullanılması zaman uyumsuz Veri Erişim Aşağıdaki kod var ve onu Geçen Milisaniye yanlıştır görünüyor:Ölçüm C#/Kronometre Class

public async Task<ActionResult> Index() 
    { 
     try 
     { 
      var connString = RoleEnvironment.IsEmulated 
           ? ConfigurationManager.ConnectionStrings["Poc"].ConnectionString 
           : ConfigurationManager.ConnectionStrings["PocVm"].ConnectionString; 

      var repository = new AccountRepository(connString); 
      var stopWatch = new Stopwatch(); 
      stopWatch.Start(); 

      var accounts = await repository.GetAll(); 

      stopWatch.Stop(); 
      ViewBag.Accounts = accounts; 
      ViewBag.VmStatus = stopWatch.ElapsedMilliseconds; 
     } 
     catch (Exception e) 
     { 
      blah blah blah... 
     } 


     return View(); 
    } 

bu doğru görünüyor mu yoksa acı açık bir şey eksik?

+1

Bana normal gibi: Repository.GetAll yöntemi zaman uyumsuz değilse

potansiyel bir hata umarım şöyle bir imzası vardır, olacaktır. Neden yanlış olduğu sonucuna varıyorsunuz? FYI, çok kısa zamanlamaları bu tekniği kullanarak doğru ölçülemez; 'Stopwatch.Frequency' alanını kontrol edin. –

+0

Bana da iyi görünüyor. Bazı nedenlerden dolayı kronometrenin kronometreli olup olmadığını görmek için biraz deneme yaptık (https://dotnetfiddle.net/wLzfor). – Jcl

+0

("ConfigureAwait (false)' kullanarak bile çalışıyor ") – Jcl

cevap

0

Bu bana tamamen uygun görünüyor.

public async Task<IEnumerable<Account>> GetAll(); 
+1

Async yöntem imzası olmadan derleme yapılacağını sanmıyorum – Jcl

İlgili konular