我正在使用此代码将非托管代码中的 IntPtr 缓冲区中的字节保存到文件中。这是一个简单的回调函数:
private void callback(IntPtr buffer, int length)
{
byte[] bytes = new byte[length];
Marshal.Copy(buffer, bytes, 0, length);
FileStream file = new FileStream(filename, FileMode.Create, FileAccess.Write);
file.Write(bytes, 0, length);
file.Close();
}
我想要的是将此数据存储到文件中并将其丢弃。据我了解,非托管代码中有一个缓冲区,而我的代码中有第二个缓冲区。我不想直接复制我想要的数据:
// bad: (unmanaged) buffer -> (managed) bytes -> file
// awesome: (unmanaged) buffer -> file
对于我的任务,我需要最快的方式将数据存储到文件中。