我正在使用signalR从服务器向客户端发送数据。我想要的是检查表(MSSQL DB)中的数据,并通过signalR将相关数据发送到客户端。所以我想创建一些后台服务来检查数据库并发送数据。
我打算使用
System.Threading.Thread.Sleep(3000);
与
while(true)
循环。如何创建服务类以在启动时运行此方法。
是否可以使用标准方法来执行此任务?
答案 0 :(得分:3)
您可以使用IHostedService
和IHubContext
来完成此操作。
请参阅有关使用ASP.NET Core进行后台服务的文档:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-2.1
请参阅IHubContext
上的文档:
https://docs.microsoft.com/en-us/aspnet/core/signalr/hubcontext?view=aspnetcore-2.1
下面是将两者一起使用的示例:
https://github.com/davidfowl/UT3/blob/fb12e182d42d2a5a902c1979ea0e91b66fe60607/UTT/Scavenger.cs
然后连线:
https://github.com/davidfowl/UT3/blob/fb12e182d42d2a5a902c1979ea0e91b66fe60607/UTT/Startup.cs#L46