private void CheckForNewPortsAsync() { IEnumerable <string> ports = SerialPort.GetPortNames().OrderBy(s => s); int length = ComPorts.Count; for (var i = 0; i < length; i++) { var comPort = ComPorts[i]; if (!ports.Contains(comPort)) { var args = new SerialPortNameEventArgs(); args.SerialPortName = comPort; UpdateSerialPostEvent(this, args); ComPorts.Remove(comPort); } } foreach (var port in ports) { if (!ComPorts.Contains(port)) { AddPort(port); } } }
private void AddPort(string port) { if (ComPorts.Count == 0) { ComPorts.Add(port); var args = new SerialPortNameEventArgs(); args.SerialPortName = port; UpdateSerialPostEvent(this, args); return; } for (int j = 0; j < ComPorts.Count; j++) { if (port.CompareTo(ComPorts[j]) < 0) { ComPorts.Insert(j, port); var args = new SerialPortNameEventArgs(); args.SerialPortName = port; UpdateSerialPostEvent(this, args); break; } } }