请教下C#关于大数组如何快速保存到硬盘的问题
请教大家,由于在做c#一个数据采集卡的程序,由于采样率很高因此 每秒有200000个double的速度。
我现在有一个 ADDATA[4,2000000]的二维数组来储存这些数据 , 希望能快速的把这个数组从内存里扔到硬盘中,因为这个数组的值每格1S会重新接受新的数据 ,所以要每隔1S存一次,而且存的值是连续可读的 请问 该如何实现呢?
我之前用
for (int i = 0; i < ADData.Length; i++)
{
try
{
File.AppendAllText("E:\\a.txt", ADData[i].ToString() + "\r\n");
}
catch (Exception ee)
{
MessageBox.Show("" + ee);
}
}
来写入文件,发现非常慢。请问如何解决这个问题呢。
------解决方案--------------------先放到内存,然后后台开线程去写文件,或者先写入文件流,最后统一将流保存为文件,io效率最低,最好不要频繁的进行io读写
------解决方案--------------------先转成字节数组,再写入二进制文件
double[] ADData = new double[2000000];
byte[] bytes = new byte[ADData.Length * sizeof(double)];
Buffer.BlockCopy(ADData, 0, bytes, 0, ADData.Length * sizeof(double));
------解决方案--------------------可以考虑压缩下
------解决方案--------------------