The*_*tin 10 c# asynchronous 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 方法返回值,但控制器操作方法不需要该值 - 它将在不同的地方使用,不与之连接。
als*_*ami -1
任务是高级线程,可确保您不会阻塞任何上下文。
您要么想使用ASP.NET Core 2.0 中的RabbitMQ或IHostedService之类的东西来执行请求完成后启动的即发即忘任务。
| 归档时间: |
|
| 查看次数: |
15482 次 |
| 最近记录: |