gpt4 book ai didi

c# - FromAsyncPattern 会处理不再使用的资源吗?

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:34 26 4
gpt4 key购买 nike

FromAsyncPattern 会关闭我的网络响应吗:

var o = Observable.Return(HttpWebRequest.Create("http://foo.com"))
.SelectMany(r => Observable.FromAsyncPattern<WebResponse>(
r.BeginGetResponse,
r.EndGetResponse)())
.Select(r => r.ContentLength);
// The response is now disposed

还是我必须手动完成?

var o = Observable.Return(HttpWebRequest.Create("http://foo.com"))
.SelectMany(r => Observable.FromAsyncPattern<WebResponse>(
r.BeginGetResponse,
r.EndGetResponse)())
.Select(r => Tuple.Create(r, r.ContentLength))
.Do(t => t.Item1.Close())
.Select(t => t.Item2);

如果我必须手动完成,有没有比这更好的方法?

最佳答案

Observable.Using 可用于此目的:

var o = Observable.Return(HttpWebRequest.Create("http://www.google.com"))
.SelectMany(r => Observable.FromAsyncPattern<WebResponse>(
r.BeginGetResponse,
r.EndGetResponse)())
.SelectMany(r =>
{
return Observable.Using( () => r, (resp) => Observable.Return(resp.ContentLength));
});

关于c# - FromAsyncPattern 会处理不再使用的资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7444503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com