这是我的问题。我有大约20种不同类型的消息通过端口进入。他们都可以被识别并以不同的速率进入(有些每秒会发生多次,有些会每隔几秒钟发生一次)。从串口读取数据并跟踪最近的行数
我需要保留这些项目的日志,但只能每30分钟记录一次。我想不断读取端口,并更新某种数组。那么当定时器事件发生时,记录数组中的数据。
我做这在C#.NET 4.5.2
这是我的问题。我有大约20种不同类型的消息通过端口进入。他们都可以被识别并以不同的速率进入(有些每秒会发生多次,有些会每隔几秒钟发生一次)。从串口读取数据并跟踪最近的行数
我需要保留这些项目的日志,但只能每30分钟记录一次。我想不断读取端口,并更新某种数组。那么当定时器事件发生时,记录数组中的数据。
我做这在C#.NET 4.5.2
您可以使用列表的字典举办这种类型的存储器内日志的。如果创建说
public enum EventTypes
{
A,
B
};
,并假设您的数据点是整数,你可以使用
Dictionary<EventTypes, List<int>> inMemoryLog = new Dictionary<EventTypes, List<int>>();
然后,你可以登录如下:
inMemoryLog[EventTypes.A].Add(myDataPoint);
当你准备冲将日志记录到内存,将inMemoryLog保留到磁盘,删除已写出的每个条目。创建inMemoryLog副本以用于写入磁盘(然后重新初始化您用于记录的imMemoryLog实例)可能是一种很好的策略,以便内存中的日志记录可以不中断地继续。
感谢Eric!这实际上是我在周末期待的内容,非常兴奋地实施。 – jerryn44
你打电话问题实际上是你需要做的一件事。请向我们展示您迄今为止完成的任务,然后我们可以帮助解决您遇到的具体问题。 – CodingYoshi