.net-core - 获取 QueueBackgroundWorkItem 的任务
问题描述
我有一个控制器:
private IBackgroundTaskQueue _queue;
[HttpPost("Add")]
public async Task<ActionResult<long>> Add([FromForm] long data)
{
return await Task.Run(() =>
{
return Calc(data);
});
}
private ActionResult<long> Calc(long data)
{
return new ObjectResult(data);
}
在控制器中返回任务处理程序?
return await _queue.QueueBackgroundWorkItem(clt => Calc(data));
解决方案
QueueBackgroundWorkItem
在该示例中,用于在您的控制器操作返回其响应后将工作排队到后台工作人员执行。
但是,您的示例需要返回结果(long
)。所以在你的例子中使用这种队列是没有意义的。
附带说明一下,您应该避免Task.Run
使用 ASP.NET;您可以直接调用该方法:
[HttpPost("Add")]
public ActionResult<long> Add([FromForm] long data)
{
return Calc(data);
}
推荐阅读
- python - 如何使用 JSON.stringify() 以 base 64 十六进制字符串发送图像?
- angular - Angular - 数据绑定变量是否应该在构造函数中初始化?
- azure - Azure 存储客户端加密:我们应该如何处理加密密钥续订/轮换?
- regex - perl6 语法,不确定示例中的某些语法
- r - r: readOGR & st_read 给出两个不同的图?
- html - 我如何使用 css 选择器选择所有 html 元素但不是第一个元素
- c# - WPF 应用程序的命名空间中不存在该名称
- java - 如何获取自动装配的bean的范围
- ruby-on-rails - 使用条件 Rails 表单
- ios - 使用来自另一个视图控制器的 setter getter