gpt4 book ai didi

c# - SerialPort 是否在其自己的线程上接收数据?

转载 作者:行者123 更新时间:2023-11-30 14:02:31 25 4
gpt4 key购买 nike

假设我们有以下代码:

SerialPort port = new SerialPort("COM2", 115200); 
port.Open();
//
Thread.Sleep(5000);
//
if (port.BytesToRead > 0)
{
Console.WriteLine("Bytes in buffer: " + port.BytesToRead.ToString());
}

如果在线程被阻塞的那 5000 毫秒内,有 5 个字节被发送到串口,代码会打印出缓冲区中有 5 个字节吗?还是在 Thread.Sleep 返回之前它不会开始接收?

谢谢

最佳答案

硬件设备(例如 HDD、网络端口,是的,串行端口)上的通信是使用由 ThreadPool 管理的 I/O 完成线程执行的。因此,对您的问题的简短回答是,即使您的程序没有主动运行和监听数据,端口也应该接收数据。一旦你的线程醒来,它会询问端口缓冲区中有多少字节,它会回应说它比你休眠线程之前多了 5 个字节。

关于c# - SerialPort 是否在其自己的线程上接收数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5806856/

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