首页 > 解决方案 > 将数据从托管流复制到 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;
    }
}

标签: c#unmanagedlibsndfile

解决方案


推荐阅读