gpt4 book ai didi

c# - SerialPort.GetPortNames 多次返回同一个端口

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:16 27 4
gpt4 key购买 nike

SerialPort.GetPortNames();

返回以下数组:

{ "COM1", "COM5", "COM5", "COM5", "COM5", "COM5", "COM5" }

它通常每个名字只有一次。解决这个问题很容易,但是有人知道为什么会这样做吗?

最佳答案

如果没有关于您的特定环境的更多信息(包括机器配置和注册表信息),就不可能做出肯定的回答。但最有可能的(不令人满意的)答案是 GetPortNames() 只是根据可用信息尽力而为。

即它检查注册表以查看存在哪些端口并将它们的列表返回给您。在某些情况下,同一个 COM 端口号可能会被多个设备重复使用,甚至同一设备的多次使用(取决于驱动程序),导致该端口号在注册表中被多次列出。

确实,在某些情况下,您可能会返回一个此时甚至无效的 COM 端口名称。 IE。某些设备在某个时间确实存在,但已被删除/断开连接/等。并且不再可用。

这是一个典型的“输入垃圾,输出垃圾”问题。

有关该问题的相关信息,您可能想查看这些 Stack Overflow 问题:

GetPortNames() returns stale data/Remove stale comport entries in Windows?
SerialPort.GetPortNames() is wrong
SerialPort.GetPortNames() behavior

关于c# - SerialPort.GetPortNames 多次返回同一个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33401217/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com