异步方法返回的IRandomAccessStream 不可读??

Leeway213 UID.76829
2015-10-11 发表

如题
网络请求一个二进制文件,封装在一个异步方法中:
public async static Task<IRandomAccessStream> GetBinFileAsync(string resource)
{
Debug.WriteLine(resource);
using (var response = await _client.GetAsync(resource))
{
Debug.WriteLine(response.Content.Headers.ContentLength);
if(response.IsSuccessStatusCode)
{
Stream stream = await response.Content.ReadAsStreamAsync().ConfigureAwait(false);
Debug.WriteLine(stream.Length);
IRandomAccessStream randomAccessStream = stream.AsRandomAccessStream(); //这里这个流是可读的
return randomAccessStream;
}
response.EnsureSuccessStatusCode();
return null;
}
}



返回的randomAccessStream在函数内是可读的,但是获取出来的值变成了不可读。。。
IRandomAccessStream randomAccessStream = await GetBinFileAsync(url); //这个返回结果不可读

请问是什么原因。。。***图片停止解析***
***图片停止解析***

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
Dolphinsimon UID.440553
2015-10-11 回复

这种情况大多是都是因为资源的提前释放造成。在你的代码里我认为应该是using作用域的不当使用造成。你把异步Task内的using给去掉,然后再试,返回出去的流应该就是可以读的了。

Leeway213 UID.76829
2015-10-11 回复

Quote***链接停止解析***
这种情况大多是都是因为资源的提前释放造成。在你的代码里我认为应该是using作用域的不当使用造成。你把异 ...


{:3_122:} {:3_122:} 是这个问题 太谢谢了
看来有必要巩固下C#基础{:6_218:}

tmp00000 UID.995403
2015-10-12 回复

被关闭的流CanRead肯定是false

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报