首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SqlDependency缓存

使用SqlDependency缓存
EN

Stack Overflow用户
提问于 2011-05-02 15:26:34
回答 1查看 1.3K关注 0票数 5

我使用SqlDependency来监视数据库中的更改。比方说,这些是股票报价,让这个例子更容易理解。应用程序还使用(另一个)SqlDependeny对象来监视静态数据的更改,这些数据被缓存在应用程序中。

我所做的是在启动应用程序时通过SqlDependency.Start()启动依赖项,在关闭应用程序时调用SqlDependeny.Stop。到目前为止,一切都很顺利。

现在,当用户选择股票符号时,将设置另一个SqlDependency并将更改通知我,我可以对其采取行动。当用户更改他想要跟踪的符号时,我必须设置一个新的SqlDependency,必须清除旧的SqlDependency

我的问题是:这是真的吗?如何清除特定的依赖项呢?SqlDependency.Stop()是一种静态方法,可以停止所有依赖关系--即使在那里,我也很不确定是否真的清除了server上的通知订阅--或者只是等待进入超时状态。

这都引发了一个问题,是使用SqlDependency进行一些缓存是正确的方式,还是有其他好的、容易的实践来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2011-05-02 18:18:20

不知道为什么要在这里打电话给Stop。只需为新符号创建一个新的SqlDependency实例,并删除对旧符号实例的引用,允许垃圾收集及时清理它。只要您还删除了对旧实例的OnChange事件的订阅,这种方法就应该适用于您。

不过,不确定如果您想要支持许多用户,它将如何扩展。在这种情况下,集中式缓存更改检测和合并方案可能更好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5859021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档