小编The*_*tin的帖子

C# ASP.NET Core 即发即忘

我有一个同步控制器方法

    public IActionResult Action(int num)
    {
        //operations-1

        Task.Run(() => DoWork(num));

        //operations-2
        int a = num + 123;
        return Ok(a);
    }
Run Code Online (Sandbox Code Playgroud)

和DoWork方法

    private bool DoWork(int num)
    {
        //operations

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

我想做的是在从 Postman 调用该端点时在后台运行 DoWork 方法,但我想在 Postman 中获得结果,然后调试 DoWork 方法(从 DoWork 方法中的断点) - 这可能吗?

在那一刻,控制器操作和 DoWork() 同时执行,但是当我达到

return Ok(a);
Run Code Online (Sandbox Code Playgroud)

应用程序等待 DoWork 而不是返回值。我也尝试过

Task.Factory.StartNew(() => DoWork());
ThreadPool.QueueUserWorkItem(o => DoWork());
Run Code Online (Sandbox Code Playgroud)

但结果是一样的。

我希望 DoWork 方法返回值,但控制器操作方法不需要该值 - 它将在不同的地方使用,不与之连接。

c# asynchronous asp.net-core

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

asp.net-core ×1

asynchronous ×1

c# ×1