C# 缓存依赖项释放模式

本文关键字:释放 模式 依赖 缓存 | 更新日期: 2023-09-27 18:33:26

>我正在将缓存依赖的对象添加到此类AggregateCacheDependency的数组中。 当我完成数组时,我会处理它。 我的问题是我是否必须只处理包含对象的数组,还是必须处理它们之前自己的对象?

C# 缓存依赖项释放模式

你不需要显式释放 AggregateCacheDependency 中的对象,因为它会处理其对象本身。下面是 AggregateCacheDependency 的 metohod,它在其数组中处理每个对象:

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();
                }
            }
        }