public void Attach(TimedEventQueue parent) { lock (this) { _parent = parent; if (Count > 0) { _parent.Add(FindMin().Time, Run); } } }
public void Detach() { lock (this) { if (_parent == null) { return; } var list = _parent.Where(e => e.Callback == Run) .Select(e => e.Handle) .ToList(); foreach (var eHandle in list) { _parent.Delete(eHandle); } _parent = null; } }
public TimedEventQueue(TimedEventQueue parent) { _parent = parent; }