У меня есть пользовательская зависимость кэша
class MyCacheDependency : CacheDependency
{
private const int PoolInterval = 5000;
private readonly Timer _timer;
private readonly string _readedContent;
public MyCacheDependency()
{
_timer = new Timer(CheckDependencyCallback, this, PoolInterval, PoolInterval);
_readedContent = ReadContentFromFile();
}
private void CheckDependencyCallback(object sender)
{
lock (_timer)
{
if (_readedContent != ReadContentFromFile())
{
NotifyDependencyChanged(sender, EventArgs.Empty);
}
}
}
private static string ReadContentFromFile()
{
return File.ReadAllText(@"C:\file.txt");
}
protected override void DependencyDispose()
{
if (_timer != null) _timer.Dispose();
base.DependencyDispose();
}
}
Это работает отлично, но мне интересно, как сделать обновление всего объекта за один раз. Здесь я помещаю в кеш 2 объекта
Cache.Insert ("c1", "var1", new MyCacheDependency ());
Cache.Insert ("c2", "vae2", new MyCacheDependency ());
Это хорошо, но когда c1 обнаружит изменение, как заставить c2 не ждать 5 секунд, чтобы проверить, но я хочу называть себя DependencyDispose, когда c1 делает это.
Другими словами, если c1 обнаруживает изменение, c2 также должен вызвать DependencyDispose