有没有办法将 IAsyncOperation 转换为 System.IO.Steam?
Posted
技术标签:
【中文标题】有没有办法将 IAsyncOperation 转换为 System.IO.Steam?【英文标题】:Is there a way to convert an IAsyncOperation to System.IO.Steam? 【发布时间】:2014-11-06 20:27:34 【问题描述】:我有一个适用于我的 Windows 8 应用程序的 StorageFiles 列表。我需要通过 Stream 类将它们提交到服务器。我试过像这样转换存储文件:
Stream fs = temp[i].OpenAsync(FileAccessMode.Read);
temp[] 是包含图像的 StorageFiles 列表。显然我的代码不起作用。该错误消息表明我可能缺少演员表或其他内容。无论如何将 StorageFiles 或 IAsyncOperation 转换为流?
【问题讨论】:
您收到的错误信息是什么? 你需要await
它。
await 对它没有任何作用。这是错误消息:无法将类型“Windows.Foundation.IAsyncOperationSTEAM
中吹掉了太多 System.IO.Steam
【参考方案1】:
检查这是否有效:
Stream fs = (await temp[i].OpenAsync(FileAccessMode.Read)).AsStream();
您的错误消息中包含所有信息 - OpenAsync
返回(在您 await
它之后)IRandomAccessStream
,您可以使用 AsStream 方法将其转换为 System.IO.Stream
。
【讨论】:
以上是关于有没有办法将 IAsyncOperation 转换为 System.IO.Steam?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将IAsyncOperation强制为错误状态?
我如何以编程方式将IAsyncOperation强制为错误状态?
升级 Visual Studio 产量 - “IAsyncOperation”:未定义基类和未定义 IID_IAsyncOperation
C#Windows窗体应用程序IAsyncOperation
FromBluetoothAddressAsync IAsyncOperation 不包含“GetAwaiter”错误的定义