首页 > 解决方案 > 实时读取和处理数据

问题描述

我正在从串行端口读取数据(数据以块的形式接收)并存储到缓冲区中。我想在不丢失数据的情况下实时阅读和处理它。

计时器是实现它的最佳方式吗?如果计时器在前一个完成之前就过去了会发生什么?它等待吗?

private void Init()
{
      timerData = new Systems.Timers.Timer;
      timerData.Enabled = true;
      timerData.Interval = 10;
      timerData.Tick += new System.EventHandler(this.timerReadAndProcessData_Tick);
      timerData.Start();
}

private void timerReadAndProcessData_Tick(object sender, EventArgs e)
{
    while (_readAndProcesssDataFlag && Sensor.bufferHasSamples())
    {
       var data = Sensor.getFirstUnprocessedSample(); //buffer.dequeue() in serialPort class
       var parsedData = parse(data);

       for (int i=0; i<parsedData.Length; i++)
       {

          // Process samples here

          // Write processed samples to file
        }
    }
}

标签: c#timer

解决方案


推荐阅读