gpt4 book ai didi

c# - 轮询的替代方案?

转载 作者:行者123 更新时间:2023-11-30 16:09:20 25 4
gpt4 key购买 nike

我有一个 asp.net c# 桌面应用程序,它每 5 分钟不断轮询一次数据库数据。这会导致服务器承受大量负载,进而降低其效率。

asp.net 中是否有支持独立于所用数据库的发布订阅模型的技术?我知道长轮询是其中一种选择。但我一直在寻找事件驱动的东西,而不是长时间轮询数据。任何帮助将不胜感激。

最佳答案

如果您实际使用的是 ASP.net,您可以添加 the SignalR framework建立到您的桌面应用程序的推送 channel 。

在服务器端,添加 Microsoft.AspNet.SignalR nuget 包 (Install-Package Microsoft.AspNet.SignalR);在客户端上,添加 Microsoft.AspNet.SignalR.Client (Install-Package Microsoft.AspNet.SignalR.Client)。

这样,只要对数据库进行了更新,您就可以通知所有客户,如下所示:

public void AddCustomer(Customer customer)
{
using (var db = new CustomerContext)
{
db.Customers.Add(customer);
db.SaveChanges();
}

var hub = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
hub(customer.Id);
}

关于c# - 轮询的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27799859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com