Asp.net mvc MVC在后台一直运行的方法?

Asp.net mvc MVC在后台一直运行的方法?,asp.net-mvc,signalr,real-time,Asp.net Mvc,Signalr,Real Time,我想在我的MVC应用程序中使用SignalR。 方法应该是这样的: 将有一些方法一直在后台运行,并检查数据库表中是否有新行。 如果有,它将调用一个方法,该方法将广播新行并发送到客户机视图 我该怎么做(我想我需要一个一直在后台运行的方法)? 谢谢 嗯 如果你想要一直运行的东西,你可以使用服务,或者像Rafa建议的那样使用后台线程——但是在你使用之前,我想看看你的总体设计是否可以改进。一直轮询数据库以查找新行将意味着大量不必要的数据库流量 首先添加行的是什么?我们能让代码为我们引发某种形式的事件/调

我想在我的MVC应用程序中使用SignalR。 方法应该是这样的: 将有一些方法一直在后台运行,并检查数据库表中是否有新行。 如果有,它将调用一个方法,该方法将广播新行并发送到客户机视图

我该怎么做(我想我需要一个一直在后台运行的方法)? 谢谢

如果你想要一直运行的东西,你可以使用服务,或者像Rafa建议的那样使用后台线程——但是在你使用之前,我想看看你的总体设计是否可以改进。一直轮询数据库以查找新行将意味着大量不必要的数据库流量

首先添加行的是什么?我们能让代码为我们引发某种形式的事件/调用操作吗?根据数据库的不同,我们是否可以使用行级触发器?我们能用它来避免投票吗


我认为你还不应该真正地输入代码,而是应该挑战你当前的设计,看看如何改进它…

在.net中,你可以使用BackgroundWorker类来完成这类事情。它不适用于MVCYE,我知道它的流量非常大。还有另一种方法可以实时获取数据库更改?这取决于您的个人情况。您是否控制将这些记录放在首位的代码?如果是这样,您可以添加一些东西,在插入记录时启动您想要执行的任何操作。或者,可以使用数据库触发器在发生更改时运行一段代码。如果您试图通知多个客户端发生了某些事情,请查看Microsoft提供的名为SIGNAL-R的技术。它不必是javascript客户端-您也可以有.Net客户端…我使用SIGNAL-R。但是在加载视图后如何运行线程?因为当我启动BackgroundWorker时,我得到了一个异常:此时无法启动异步操作。异步操作只能在异步处理程序或模块内启动,或在页面生命周期中的某些事件期间启动。如果在执行页面时发生此异常,请确保该页面已标记。Dunno-在这方面无法帮助您