小编Vic*_* P.的帖子

C# - OutOfMemoryException在JSON文件上保存List

我正在尝试保存压力图的流数据.基本上我有一个压力矩阵定义为:

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小时的信息.

.net c# multithreading json jsonconvert

2
推荐指数
1
解决办法
439
查看次数

标签 统计

.net ×1

c# ×1

json ×1

jsonconvert ×1

multithreading ×1