private void AttachDelegates(List <TableContainer> containers) { foreach (TableContainer container in containers) { TableContainer.ActivateDelegate handler = delegate(TableContainer activated) { Monitor.Enter(activeContainers); if (!activeContainers.ContainsKey(activated)) { activeContainers.Add(activated, DateTime.Now); if (ContainersChangedEvent != null) { ContainersChangedEvent(AvticeTables); } } else { activeContainers[activated] = DateTime.Now; } Monitor.Exit(activeContainers); }; attachedDelegates.Add(container, handler); container.Activated += handler; } }
private void DetachDelegates() { foreach (TableContainer container in attachedDelegates.Keys) { TableContainer.ActivateDelegate handler = attachedDelegates[container]; container.Activated -= handler; } attachedDelegates.Clear(); }