private static void Compaction(int count) { var wveArray = new WeakVirtualElement[Math.Min(count, _properties.Count)]; int counter = 0; foreach (var key in _properties.Keys) { if (key.IsAlive()) { continue; } wveArray[counter++] = key; if (counter >= wveArray.Length) { break; } } foreach (var key in wveArray) { if (key == null) { break; } _properties.Remove(key); } }
public T GetValue(WeakVirtualElement element) { T val; _properties.TryGetValue(element, out val); return(val); }
public void SetValue(WeakVirtualElement element, T val) { if (_properties.ContainsKey(element)) { _properties[element] = val; } else { _properties.Add(element, val); } }
protected ControlBase() { _weakInstance = new WeakVirtualElement(this); }