C#MVC异步任务<>控制器动作混乱

时间:2017-07-18 21:43:53

标签: c# asp.net-mvc asynchronous task

好的,我在这个网站上已经有很多主题了,这整个异步的东西仍然让我感到困惑,所以我要保持简单。

我在控制器上有一个ActionMethod。

public async Task<ActionResult> Index()
    {

        try
        {
            throw new Exception("test");
        }
        catch (Exception ex)
        {
            new MD_Log().LogError();
        }

        return View();
    }

我的ErrorLog函数本身就是异步

 // adds a new error log
    public async Task LogError()
    {
        Thread.Sleep(10000);

        // add a record to the error table
        using (DB db = new DB())
        {
            // SomeCode
            await db.SaveChangesAsync();
        }
    }

我在控制器上抛出一个新的异常,调用 LogError()方法,暂停执行日志功能10秒钟。

我不想等待LogError()函数完成,因为我的用户不需要等待,所以我省略了await关键字 我的控制器操作中新的 MD_Log()。LogError()函数。

现在,如果我在返回View(); 上添加一个断点,那么在等待db.SaveChangesAsync()被击中之前,该断点不应该先被击中?

我没有添加await关键字,我在LogError函数中添加了10秒的暂停。

这是怎么回事?这似乎与我同步。当LogError()函数仍然在后台运行时,我怎么能回到视图?

0 个答案:

没有答案