Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 串口连接是否会在SerialPort.close()方法之外关闭?_C#_Serial Port - Fatal编程技术网

C# 串口连接是否会在SerialPort.close()方法之外关闭?

C# 串口连接是否会在SerialPort.close()方法之外关闭?,c#,serial-port,C#,Serial Port,这更多的是理论上的问题,而不是实践上的问题,因为我目前无法测试它,因为我没有一个相当大的设备来测试我正在创建的程序。我的问题是,串行端口在其生命周期内是否会在不调用SerialPort.close()的情况下关闭?此外,在调用方法之前是否存在连接超时的风险 另外,是否有任何理由在发出命令后关闭它,在需要提交新命令时重新打开它,或者始终保持打开状态是安全的?串行连接(指物理连接或端口对象)从不超时,即使拔下电缆。但是,如果串行端口是USB转换器,则如果USB端被拔下,设备将被禁用,这将中断串行连接

这更多的是理论上的问题,而不是实践上的问题,因为我目前无法测试它,因为我没有一个相当大的设备来测试我正在创建的程序。我的问题是,串行端口在其生命周期内是否会在不调用
SerialPort.close()
的情况下关闭?此外,在调用方法之前是否存在连接超时的风险

另外,是否有任何理由在发出命令后关闭它,在需要提交新命令时重新打开它,或者始终保持打开状态是安全的?

串行连接(指物理连接或端口对象)从不超时,即使拔下电缆。但是,如果串行端口是USB转换器,则如果USB端被拔下,设备将被禁用,这将中断串行连接

SerialPort是IDisposable的,因此如果您处置它,它将关闭

只有在进行读取且没有数据时,才会发生串行超时。这对SerialPort设备或连接没有影响。(写入时也可能发生串行超时,但这种情况不太常见。只有在涉及握手且接收器阻止接收时才会发生此情况。)

串行连接(指物理连接或端口对象)从不超时,即使拔下电缆。但是,如果串行端口是USB转换器,则如果USB端被拔下,设备将被禁用,这将中断串行连接

SerialPort是IDisposable的,因此如果您处置它,它将关闭


只有在进行读取且没有数据时,才会发生串行超时。这对SerialPort设备或连接没有影响。(写入时也可能发生串行超时,但这种情况不太常见。只有在涉及握手且接收器阻止接收时才会发生。)

第二部分:不太可能,除非系统上有其他服务在争夺该端口。否则,一旦应用程序关闭/崩溃,端口将被释放。此外,建议您避免关闭端口,然后期望立即重新打开。如果您拔下电缆怎么办?根据我的经验,只要com端口存在,比如说
Com1
,并且对它的访问没有被另一个程序锁定,C#并不特别关心设备甚至电缆是否连接到串行端口。我从来没见过它超时。发生读取超时,但不影响串行端口的打开/关闭状态。我已经很久没有机会有效地测试它了。FWIW,我们部署的数据采集服务应用程序,连续几个月保持串行端口开放,没有任何问题。不过,该服务确实非常频繁地对它们进行读取和/或写入。第二部分:不太可能,除非系统上有其他服务在争夺该端口。否则,一旦应用程序关闭/崩溃,端口将被释放。此外,建议您避免关闭端口,然后期望立即重新打开。如果您拔下电缆怎么办?根据我的经验,只要com端口存在,比如说
Com1
,并且对它的访问没有被另一个程序锁定,C#并不特别关心设备甚至电缆是否连接到串行端口。我从来没见过它超时。发生读取超时,但不影响串行端口的打开/关闭状态。我已经很久没有机会有效地测试它了。FWIW,我们部署的数据采集服务应用程序,连续几个月保持串行端口开放,没有任何问题。但是,该服务确实非常频繁地读取和/或写入它们。由于在退出程序之前,完全没有理由处置我在程序中建立的串行端口连接,因此,在我不提交命令时,是否有理由关闭并重新打开它?除非您与其他程序共享端口,我看不出原因。因为在退出程序之前,完全没有理由处理我在程序中建立的串行端口连接,所以当我不提交命令时,是否有理由关闭并重新打开它?除非您与其他程序共享端口,否则我看不出原因。