【问题标题】:.net core web api controller life cycle.net core web api 控制器生命周期
【发布时间】:2021-08-01 00:24:18
【问题描述】:

您好,我了解注入服务的生命周期,例如在请求完成后服务不可用的作用域。但是参数(如示例中的 myObject)何时被销毁?如果我将此参数传递给长异步任务并且我不等待结果,我可能会在任务中遇到一些 null 问题?

public class mycontroller : ControllerBase
{
    private MyService _myservice;

    public mycontroller(MyService myservice)
    {
        _myservice = myservice;
    }

    [HttpPost]
    public IActionResult Post([FromBody] MyObject myObject)
    {
        _myservice.dosomethinglongasync(myObject);
        return OK();
    }
}

【问题讨论】:

标签: c# asp.net-core-webapi


【解决方案1】:

任务将继续保持对myObject 的引用,直到完成。您不应该面临它被预先销毁的问题。

但是(!)这是一个糟糕的设计。您无法检查任务是否完成等。在不等待某处等待它们的情况下触发异步任务不是一个好习惯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多