c# - 将数据从托管流复制到 4096 块中的 intptr 是否有优势?
问题描述
在我的 libsndfile 包装器中,我目前正在使用它。读取我的流(必须是从资源加载的流)但这是我可以用请求的数据填充指针的最佳方式吗?
public static void ReadStream(Stream input,IntPtr output,int size)
{
byte[] data = new byte[BufferSize];
int i = BufferSize;
int ptr_offset = 0;
while (i == BufferSize || ptr_offset==size)
{
i = input.Read(data, 0, BufferSize);
if (i + ptr_offset > size)
i = size - ptr_offset;
MarshalExt.Copy_MU(data, 0, output, ptr_offset, (uint)i);
ptr_offset += i;
}
}
解决方案
推荐阅读
- r - R 错误:x[[jj]] <- v 中的错误:运行函数时尝试在 integerOneIndex 中选择少于一个元素
- docker - Docker 拉失败/Gitlabci
- varnish - 如何指示 varnish 根据响应头数据生成缓存键
- node.js - 从 bcypt 哈希中获取原始数据
- visual-studio-2010 - 文件名中没有拼写错误,但无法在 python 中读取文件
- python - 如何修复 Python NetCat 克隆中的属性错误?
- c# - Web API Delete 方法从 Angular 应用程序抛出 404
- flutter - 如何在颤动中使用轮播和英雄?
- typescript - TypeScript 泛型回调参数类型推断
- java - 如何使用 graphql 请求查询 API