Gre*_*vre 5 .net c# caching notificationservices sqldependency
我正在使用SqlDependency来监视数据库中的更改.让我们说,这些是股票报价,以使例子易于理解.该应用程序还使用(另一个)SqlDependeny-Object来监视静态数据的更改,这些更改缓存在应用程序中.
我所做的是,SqlDependency.Start()在启动应用程序时启动依赖关系,并SqlDependeny.Stop在关闭应用程序时调用.到目前为止,一切都运作良好.
现在,当用户选择股票代码时,会设置另一个SqlDependency并通知我有关我可以采取措施的更改.当用户更改他想要跟踪的符号时,我必须设置一个新的SqlDependency,并且必须清除旧的SqlDependency.
我的问题是:这是真的吗?我怎样才能清除特定的依赖关系?SqlDependency.Stop()是一个静态方法,并停止所有依赖 - 甚至在那里我很不确定SQL服务器上的通知订阅是否真的被清除 - 或只是等待进入超时.
如果这是使用SqlDependency进行缓存的正确方法,或者是否有其他好的和简单的实践来实现这一点,这一切都提出了一个问题?
不知道为什么你需要打电话到Stop这里。只需SqlDependency为新符号创建一个新实例,并删除对旧符号实例的引用,以便垃圾收集及时清理它。只要您还删除了对旧实例OnChange事件的订阅,这种方法就应该适合您。
不过,如果您想支持许多用户,不确定它将如何扩展。在这种情况下,集中式缓存更改检测和合并方案可能会更好。
| 归档时间: |
|
| 查看次数: |
1139 次 |
| 最近记录: |