c# - 实时读取和处理数据
问题描述
我正在从串行端口读取数据(数据以块的形式接收)并存储到缓冲区中。我想在不丢失数据的情况下实时阅读和处理它。
计时器是实现它的最佳方式吗?如果计时器在前一个完成之前就过去了会发生什么?它等待吗?
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
}
}
}
解决方案
推荐阅读
- sql - 如何根据在 oracle 中具有空值的列从两个不同的列中进行选择
- python - Pygame 表面位置似乎与屏幕上的位置不同?
- python - Cython - 动态 2D C++Array 的 Memoryview
- mongodb - MongoDB按偶数元素将数组拆分为N元素数组
- c# - 寻找着陆点
- json - Nil 与预期的参数类型“JSON”不兼容
- c# - 用于 IList 的 WPF 数据网格
- 无法添加新值 - authentication - 我重新启动节点红色,但用户仍然登录
- mysql - 当没有匹配的数据而不是返回 0 行时,有没有办法返回一个为零的列?
- redis - Redisson本地缓存使用