C# cachedependency dispose pattern
Я добавляю объекты кеш-зависимости в массив таких AggregateCacheDependency. когда я закончу с массивом, я избавлюсь от него. у меня вопрос: должен ли я располагать только массивом, содержащим объекты, или я должен избавиться от объектов, которые они сами себе раньше?
1 ответ
Решение
Вам не нужно явно располагать объекты в AggregateCacheDependency, так как он сам выполняет удаление своих объектов. Вот метод AggregateCacheDependency, который располагает каждый объект в своем массиве:
protected override void DependencyDispose()
{
CacheDependency[] array = null;
bool flag = false;
try
{
Monitor.Enter(this, ref flag);
this._disposed = true;
if (this._dependencies != null)
{
array = (CacheDependency[])this._dependencies.ToArray(typeof(CacheDependency));
this._dependencies = null;
}
}
finally
{
if (flag)
{
Monitor.Exit(this);
}
}
if (array != null)
{
CacheDependency[] array2 = array;
for (int i = 0; i < array2.Length; i++)
{
CacheDependency cacheDependency = array2[i];
cacheDependency.DisposeInternal();
}
}
}