我正在使用 SqlDependency 来监视数据库中的更改。假设这些是股票报价,以使示例易于理解。该应用程序还使用(另一个)SqlDependeny-Object 来监视对静态数据的更改,这些数据缓存在应用程序中。
我所做的是在启动应用程序时启动依赖项,并在关闭应用程序时SqlDependency.Start()
调用。SqlDependeny.Stop
到目前为止,一切都运行良好。
现在,当用户选择股票代码时,会设置另一个 SqlDependency 并通知我更改,我可以对其采取行动。当用户更改他想要跟踪的符号时,我必须设置一个新的 SqlDependency 并且必须清除旧的 SqlDependency。
我的问题是:这是真的吗?我怎样才能清除特定的依赖关系?SqlDependency.Stop()
是一种静态方法并停止所有依赖项 - 即使在那里我也很不确定 SQL 服务器上的通知订阅是否真的被清除了 - 或者只是等待超时。
这一切都提出了一个问题,如果使用 SqlDependency 进行一些缓存是正确的方法,或者是否有其他好的和简单的做法来实现这一点?