在非异步控制器中使用.ContinueWith

时间:2016-12-12 21:19:28

标签: asynchronous asp.net-web-api2 task-parallel-library task

我正在努力了解Task.ContinueWith应该如何在Asp.Net WebApi中工作。我想知道是否有人可以解释如何,如下面的例子。

考虑以下示例:

public IHttpActionResult Get()
{
    DoStuff()
        .ContinueWith(task =>
        {
            _log.Debug("Log some stuff");
        });

    return Ok();
}

public async Task DoStuff()
{
    await Task.Delay(1000);
}

根据我的阅读,我期待执行延续功能(即使Web请求已完成),但它永远不会。如果我将Task.Delay减少到<10毫秒就可以了。我假设当web请求返回时,continuation函数“丢失”,但为什么呢,它不只是等待在ThreadPool线程上完成的工作吗?

请帮忙!感谢..

0 个答案:

没有答案