繁体   English   中英

C#.Net中任何告诉我串行端口数据的事件接收到的事件停止接收数据

[英]Any Event in C#.Net which tell me Serial Port dataReceived event stop Receiving data

我正在使用C#进行串行端口实现。 我正在从SerialPort获取数据,并将该数据添加到集合的队列类型(全局声明)中。 我正在使用BackgroundWorker线程来处理Queue中的数据。 问题是。 如果串行端口停止发送数据和接收到的数据停止接收数据,则在我的队列中仍然有一些数据需要处理。 有什么办法告诉我没有来自串行端口的数据,或者说Port_dataReceived停止接收任何数据。 这样我就可以处理Queue中存在的任何数据。 因为这一次,我将确保现在不会有来自串行端口的任何数据,无论队列中的数据是要处理的最后剩余数据。 在此先感谢-Chetan

如果您使用的是System.IO.Ports.SerialPort,那么我不相信有内置的东西。您需要自己编写代码。

您是否有理由不能仅使用DataReceived事件并处理传入的数据?

这很棘手,因为您必须处理以下事实:SerialPort侦听器在不同的线程上运行,因此您可能需要担心线程的安全性,但是可以设置全局DateTime变量并在DataReceived事件中对其进行更新,然后检查在您的代码中查看最近一次接收数据是否已超过n秒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM