我有以下代码,似乎经过的毫秒数不准确:
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();
}
这看起来正确还是我错过了一些非常明显的东西?
这对我来说看起来完全没问题。
如果 Repository.GetAll 方法不是异步的,则可能会出现错误,希望它具有如下所示的签名:
public async Task<IEnumerable<Account>> GetAll();
当您按如下方式重新排列代码时,经过的时间是否会改变?
stopWatch.Stop();
ViewBag.VmStatus = stopWatch.ElapsedMilliseconds;
ViewBag.Accounts = accounts;
在设置 ViewBag.Accounts 属性时,秒表将继续测量,因此时间也会计算在内。否则,对我来说,没什么特别的。