【问题标题】:Any Event in C#.Net which tell me Serial Port dataReceived event stop Receiving dataC#.Net 中的任何事件告诉我串行端口 dataReceived 事件停止接收数据
【发布时间】:2009-08-07 18:49:31
【问题描述】:

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

【问题讨论】:

    标签: c# serial-port


    【解决方案1】:

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

    您是否有理由不能只使用 DataReceived 事件并在数据传入时对其进行处理?

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

    【讨论】:

      猜你喜欢
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      相关资源
      最近更新 更多