我正在使用signalR从服务器向客户端发送数据。我想要的是检查表中的数据(MSSQL DB)并通过signalR将相关数据发送到客户端。所以我想创建一些后台服务来检查数据库和发送数据。
我打算用
System.Threading.Thread.Sleep(3000);
同
while(true)
环。如何创建服务类以在启动时运行此方法。
是否有任何方法可以使用标准方式执行此任务?
您可以使用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