private void Remove(IGroup group) { lock (_lock) { if (!_groups.Contains(group)) { return; } _groups.Remove(group); if (group is IHardwareChanged hardwareChanged) { hardwareChanged.HardwareAdded -= HardwareAddedEvent; hardwareChanged.HardwareRemoved -= HardwareRemovedEvent; } } if (HardwareRemoved != null) { foreach (IHardware hardware in group.Hardware) { HardwareRemoved(hardware); } } group.Close(); }
private void Remove(IGroup group) { if (!groups.Contains(group)) return; groups.Remove(group); if (HardwareRemoved != null) foreach (IHardware hardware in group.Hardware) HardwareRemoved(hardware); group.Close(); }
private void Remove(IGroup group) { if (groups.Contains(group)) { groups.Remove(group); if (HardwareRemoved != null) { foreach (IHardware hardware in group.Hardware) { HardwareRemoved(hardware); } } group.Close(); } }
public void Close() { if (!open) { return; } while (groups.Count > 0) { IGroup group = groups[groups.Count - 1]; Remove(group); group.Close(); } Opcode.Close(); Ring0.Close(); open = false; }
private void Remove(IGroup group) { lock (_lock) { if (!_groups.Contains(group)) { return; } _groups.Remove(group); } if (HardwareRemoved != null) { foreach (IHardware hardware in group.Hardware) { HardwareRemoved(hardware); } } group.Close(); }