Mam następujący kod i wydaje się, że są niedokładne Upływający milisekund:Pomiar C#/asynchroniczny dostęp do danych Korzystanie stoper 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();
}
Czy to wygląda prawidłowa albo ja czegoś brakuje boleśnie oczywiste?
wygląda OK, aby mnie. Dlaczego wniosek jest niedokładny? FYI, bardzo krótkie czasy nie mogą być dokładnie zmierzone za pomocą tej techniki; sprawdź pole 'Stopwatch.Frequency'. –
Wygląda też dobrze dla mnie. Po prostu wykonałem mały test (https://dotnetfiddle.net/wLzfor), aby sprawdzić, czy asynchronizuje się ze stoperem z jakiegoś powodu, ale tak się nie dzieje. – Jcl
(działa nawet przy użyciu 'ConfigureAwait (false)') – Jcl