c# - 如何从 IRandomAccessStream 获取 IBuffer

标签 c# windows-8.1 win-universal-app

如果我有一个 IRandomAccessStream 对象,我该如何创建一个 IBuffer 对象?

最佳答案

我发现最简单的方法是通过 MemoryStream.GetWindowsRuntimeBuffer :

IRandomAccessStream stream = ...;

using (var memoryStream = new MemoryStream())
{
    memoryStream.Capacity = (int)stream.Size;
    var ibuffer = memoryStream.GetWindowsRuntimeBuffer();
    await stream.ReadAsync(ibuffer, (uint)stream.Size, InputStreamOptions.None).AsTask().ConfigureAwait(false);
}

关于c# - 如何从 IRandomAccessStream 获取 IBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28943487/

相关文章:

c# - 50级灰度

c# - 想知道一种在 C# 中使用 List<> 和结构来节省内存的方法

c# - 从路径 Win8.1 创建一个 StorageFile

windows-runtime - 如何将 Frame.Navigate 设置为立即发生而没有过渡?

c# - 从包含变量的C#执行多个Powershell命令

c# - 什么是NullReferenceException,如何解决?

c# - DataBinding 集合和更改集合元素

c++ - Mingw-w64 + 代码块 : No such file or directory

javascript - 从 C# UWP 处理 js 按钮

c# - WACK 检查构建