我正在用c_构建一个文件读取器,并将枚举大量数据。我想对读取的每个元素使用相同的缓冲区,然后将缓冲区传递给客户机进行进一步处理。如果我可以返回正确大小的byte[]
,而不是原始缓冲区和长度,那么api将更干净。
在不复制内存的情况下,是否可以在C中执行此操作?
最佳答案
您可以使用ArraySegment<T>
http://msdn.microsoft.com/en-us/library/1hsbd92d.aspx
它允许您指定要传递的段的开始和结束,而不复制任何数据。
我正在用c_构建一个文件读取器,并将枚举大量数据。我想对读取的每个元素使用相同的缓冲区,然后将缓冲区传递给客户机进行进一步处理。如果我可以返回正确大小的byte[]
,而不是原始缓冲区和长度,那么api将更干净。
在不复制内存的情况下,是否可以在C中执行此操作?
最佳答案
您可以使用ArraySegment<T>
http://msdn.microsoft.com/en-us/library/1hsbd92d.aspx
它允许您指定要传递的段的开始和结束,而不复制任何数据。