微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用StopWatch类测量C#/异步数据访问

我有以下代码,似乎Elapsed Milliseconds不准确:
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();

原文地址:https://www.jb51.cc/csharp/99670.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐