我想要固定一个10MB长的字节数组,以便托管和非托管代码都可以使用它。
我的场景是我有一个非托管的驱动程序,它从设备中读取一些数据并将其写入到大数组中,而托管应用程序只是读取那些数据。
类似这样:
byte[] dataArray = new byte[10*1024*1024];
我希望固定dataArray,以防止垃圾回收将其移动。
当我运行应用程序时,实际上会发生什么情况?我会得到一个DataAbortApplication错误。在互联网上阅读后,我发现我应该固定dataArray
以避免此错误。如何/应该怎么做?
fixed
语句 http://msdn.microsoft.com/zh-cn/library/f58wzh21.aspx - Tawnos