我需要在我的应用程序中检查可用的COM端口:
我创造了两种方法来做到这一点。
方法1:
public List<string> GetAllPortsForeach()
{
var allPorts = new List<string>();
foreach (String portName in System.IO.Ports.SerialPort.GetPortNames())
{
allPorts.Add(portName);
}
return allPorts;
}
方法2:
public List<string> GetAllPortsForLoop()
{
var allPorts = new List<string>();
for (int i = 1; i <= 16; i++)
{
string comPortName = "COM" + Convert.ToString(i);
SerialPort sp = new SerialPort(comPortName);
try
{
sp.Open();
allPorts.Add(comPortName);
sp.Close();
}
catch
{
}
}
return allPorts;
}
哪个最快?我应该使用哪个以及为什么?
答案 0 :(得分:3)
第一个。它从注册表中读取所有可用的端口名称。更准确地说,如果您不打算在列表中添加任何自定义端口名称,则只需使用SerialPort.GetPortNames
即可。
第二个: