【发布时间】:2016-01-23 10:15:17
【问题描述】:
我正在使用一个库,它有一个函数 SendBuffer(int size, IntPtr pointer) 和 IntPtr 作为参数。
var list = new List<float>{3, 2, 1};
IntPtr ptr = list.getPointerToInternalArray();
SendBuffer(ptr, list.Count);
如何从List<T>(和/或T[])中存储的数组中获取IntPtr?
【问题讨论】:
-
调用 ToArray,还是对你来说太慢了?
-
@HansPassant:如果他在托管端创建数组,这有GC重新定位数组使地址无效的风险。
-
ToArray() 分配内存并进行复制,这是性能关键部分。该数组每 帧 发送一次,而且很大。
标签: c# marshalling intptr