Tôi có đoạn code sau và có vẻ như đã qua mili giây là không chính xác:Đo C#/Async Data Access Sử dụng StopWatch Lớp
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();
}
Điều này trông đúng hay tôi thiếu một cái gì đó đau đớn rõ ràng?
Có vẻ OK với tôi. Tại sao bạn kết luận nó không chính xác? FYI, thời gian rất ngắn không thể được đo chính xác bằng cách sử dụng kỹ thuật này; kiểm tra trường 'Stopwatch.Frequency'. –
Cũng ổn với tôi. Chỉ cần thực hiện một thử nghiệm nhỏ (https://dotnetfiddle.net/wLzfor) để xem nếu async fiddled với đồng hồ bấm giờ vì lý do nào, nhưng nó không. – Jcl
(hoạt động ngay cả khi sử dụng 'ConfigureAwait (false)') – Jcl