Мне нужно проверить наличие COM-портов в моей заявке:Самый быстрый способ проверки для 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;
}
Какой самый быстрый? Что я должен использовать и почему?
Профиль и сообщите нам. В целом, чем больше встроенных функций вы используете в .net, тем лучше. – Serdalis
Способ 1, потому что он не пытается открыть порты, что требует много времени. – dbasnett