Я использую SqlDependency для отслеживания изменений в базе данных. Допустим, это котировки акций, чтобы сделать пример простым для понимания. Приложение также использует (другой) SqlDependeny-Object для мониторинга изменений статических данных, которые кэшируются в приложении.
Что я делаю, так это запускаю Зависимость SqlDependency.Start()
при запуске приложения и вызываю SqlDependeny.Stop
при закрытии приложения. Пока все работает хорошо.
Теперь, когда пользователь выбирает биржевой символ, устанавливается другая SqlDependency и уведомляет меня об изменениях, над которыми я могу предпринять действия. Когда пользователь изменяет символ, который он хочет отслеживать, я должен установить новую SqlDependency и должен очистить старую SqlDependency .
Мой вопрос: это правда? И как я могу очистить конкретные зависимости? SqlDependency.Stop()
- это статический метод, который останавливает все зависимости - и даже там я совершенно не уверен, действительно ли подписки на уведомления на SQL-сервере действительно удалены - или просто ожидают истечения времени ожидания.
Все это поднимает вопрос: правильно ли использовать SqlDependency для некоторого кеширования, или есть другие хорошие и простые методы для достижения этой цели?