0

我正在关注这个队列托管服务的示例,以将其添加到 ASP.NET Core 应用程序中,但我不清楚StartMonitorLoop应该在哪里调用。我最终将它修改为EnsureMonitorLoop,添加了一个检查,以便Task.Run只调用一次,MonitorLoop为我的 API 控制器的构造函数添加一个参数,然后EnsureMonitorLoop从那里调用。我觉得 API 控制器构造函数应该开始监视队列有点好笑。该示例Program.cs似乎与 Visual Studio 为我生成的示例非常不同。我的使用这种WebHost.CreateDefaultBuilder(args).UseStartup<Startup>方法。那是他们打电话的地方StartMonitorLoop

打电话的正确地点在哪里StartMonitorLoop,为什么?谢谢!

4

1 回答 1

1

文档在这里不是很清楚,但MonitorLoop实际上并不是其中的一部分。这是一个在控制台应用程序中使用的示例服务,只是为了演示排队后台工作人员的工作方式。你可以从这个类中为你的应用程序获得一些灵感,但这个概念StartMonitorLoop根本不适用于 ASP.NET Core。

为了更清楚一点:IBackgroundTaskQueue例如,在实际实践中,您将注入控制器类,然后向其中添加一些任务,就像MonitorLoop做的那样(没有所有的键输入爵士乐)。你实际上不会有MonitorLoop或类似的东西。

于 2019-12-05T19:25:57.643 回答