我正在尝试保存压力图的流数据.基本上我有一个压力矩阵定义为:
double[,] pressureMatrix = new double[e.Data.GetLength(0), e.Data.GetLength(1)];
Run Code Online (Sandbox Code Playgroud)
基本上,我pressureMatrix每10毫秒得到一个,我想将所有信息保存在JSON文件中,以便以后能够重现它.
我所做的是,首先,写下我称之为标题的标题,其中包含用于录制的所有设置,如下所示:
recordedData.softwareVersion = Assembly.GetExecutingAssembly().GetName().Version.Major.ToString() + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor.ToString();
recordedData.calibrationConfiguration = calibrationConfiguration;
recordedData.representationConfiguration = representationSettings;
recordedData.pressureData = new List<PressureMap>();
var json = JsonConvert.SerializeObject(csvRecordedData, Formatting.None);
File.WriteAllText(this.filePath, json);
Run Code Online (Sandbox Code Playgroud)
然后,每次我得到一个新的压力图我创建一个新的线程来添加新的PressureMatrix并重新写入该文件:
var newPressureMatrix = new PressureMap(datos, DateTime.Now);
recordedData.pressureData.Add(newPressureMatrix);
var json = JsonConvert.SerializeObject(recordedData, Formatting.None);
File.WriteAllText(this.filePath, json);
Run Code Online (Sandbox Code Playgroud)
大约20-30分钟后,我得到一个OutOfMemory异常,因为系统无法保存recordedData var,因为List<PressureMatrix>它太大了.
如何处理这个以保存数据?我想保存24-48小时的信息.