/// <summary> /// 强制卸载一个ABProxy /// </summary> /// <param name="abName"></param> /// <param name="isABUnload">是否AB已经被卸载了, 如果已经被卸载, proxy就不再次卸载ab</param> public void UnloadABProxy(string abName) { ABProxy abProxy = this.GetABProxy(abName); if (abProxy != null) { abProxy.Dispose(); this.abDict.Remove(abName); } }
/// <summary> /// 删除没有使用的 /// </summary> public void UnloadUnused() { this.sweepMark++; //标记 foreach (var item in abDict) { ABProxy abProxy = item.Value; abProxy.Mark(this.sweepMark); } //清扫 List <string> list = null; foreach (var item in abDict) { ABProxy abProxy = item.Value; if (abProxy.sweepMark != sweepMark) { if (list == null) { list = new List <string>(); } list.Add(item.Key); } } if (list != null) { for (int i = 0; i < list.Count; i++) { string abName = list[i]; ABProxy ab = abDict[abName]; ab.Dispose(); abDict.Remove(list[i]); } } }