Ich habe den folgenden Code, und es scheint die verstrichene Millisekunden sind ungenau:Mess C#/Async Datenzugriff über Stopwatch Klasse
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();
}
Ist dies richtig aussehen, oder bin ich etwas schmerzhaft offensichtlich fehlt?
Es sieht nicht gut aus. Warum folgern Sie, dass es ungenau ist? FYI, sehr kurze Timings können mit dieser Technik nicht genau gemessen werden; Überprüfen Sie das Feld "Stoppuhr.Frequenz". –
Sieht auch gut aus für mich. Habe gerade einen kleinen Test gemacht (https://dotnetfiddle.net/wLzfor), um zu sehen, ob Async aus irgendeinem Grund mit der Stoppuhr fummelte, aber das tut es nicht. – Jcl
(funktioniert auch mit 'ConfigureAwait (false)') – Jcl