小编kri*_*nos的帖子

如何将数据从控制器传递到后台服务

我正在尝试编写一个简单的 Web api 项目,其中后台服务每秒执行一个方法。此方法循环遍历列表并仅打印(暂时)一些统计信息。我在后台服务的构造函数中声明了一个新列表。

我目前在从控制器内部添加和删除项目时遇到一些问题。

public UsersController(IUserBackgroundService userService)
{
   private readonly IUserBackgroundService _userService;

   public UserController(IUserBackgroundService userService)
   {
       _userService = userservice;
   }

   [HttpPost]
   public IActionResult PostUser(User user)
   {
      _userService.Add(user) 
   }
}

public UserService: BackgroundService, IUserService
{
    private List<User> Users;

    public UserService()
    {
       Users = new List<Users>();
    }
    protected override ExecuteAsync(CancellationToken token)
    {
        //this will execute the GenerateUserStats every second
    }

    //this method is being executed every second 
    protected Task GenerateUserStatistics()
    {
        Console.WriteLine($"Nr. of users {users.count}");
        foreach(var user in users)
        {
            Console.WriteLine($"{user.fname} …
Run Code Online (Sandbox Code Playgroud)

c# background-service asp.net-core asp.net-core-webapi asp.net-core-hosted-services

6
推荐指数
1
解决办法
8285
查看次数