提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
C#中温控器通信遇到的问题总结(2)
本部分的主要内容是为温度数据添加自定义绘制的温度曲线。利用自定义控件绘制曲线,遇到的主要问题是实现查看以往温度数据的功能,因为这部本牵涉到对数据的存取,采用什么存取方式更为快捷方便,占用内存少,并且需要去验证是否有造成内存泄露与内存阻塞。
一、对数据采用的存取方式
采用二进制存档,读取与写入更为方便快捷,采用方法建议可以封装为一个类,调用更为方便快捷。
public static bool BinarySerialize<T>(T obj, string path)
{
bool res = false;
if (obj != null)
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
{
bf.Serialize(fs, obj);
res = true;
}
}
return res;
}
public static T BinaryDeserialize<T>(string path)
{
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read))
{
if (fs.Length != 0)
{
return (T)bf.Deserialize(fs);
}
else
{
return default(T);
}
}
}
二、查看内存泄露与阻塞的方法
1.任务管理器(推荐)
打开方法为,直接搜索任务管理器,进入进程界面,选中需要查看的进程,右键点击,“转到详细信息(G)”,查看活动内存即可.
2.诊断工具
VS2019中直接搜索,“显示诊断工具”即可。