处理 Observable 生成的 IDisposable 项目
我有一个 Observable
(WebResponse
实现 IDisposable
)
responseObservable
.Where(webResponse => webResponse.ContentType.StartsWith("text/html"))
.Select(webResponse => webResponse.ContentLength)
.Run()
(忽略毫无意义的查询!)
所以,我放弃 WebResponse
实例,无需对其调用 Dispose
。这看起来很糟糕。
更抽象地说:如果我有一个 Observable
,我如何处理生成的项目的处置?
I have an Observable<WebResponse>
(WebResponse
implements IDisposable
)
responseObservable
.Where(webResponse => webResponse.ContentType.StartsWith("text/html"))
.Select(webResponse => webResponse.ContentLength)
.Run()
(Ignore the pointlessness of the query!)
so, I'm discarding WebResponse
instances without calling Dispose
on them. This seems bad.
More abstractly: If I have an Observable<IDisposable>
, how do I deal with the disposal of generated items?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您有一个方法
WebResponse CreateMyWebResponse()
使用Observable.Using
,如下所示:Assuming that you have a method
WebResponse CreateMyWebResponse()
useObservable.Using
like this:将
Where
和Do
位更改为“也许?”之类的内容?
编辑
根据您的编辑,
现在怎么样?这可以概括为类似于
F# 中的假设
Some
/None
(我显然开始忘记我的 C#)。Change the
Where
andDo
bits to something likeperhaps?
EDIT
Based on your edit, how about
now? This would generalize into something like
assuming
Some
/None
as in F# (I am apparently starting to forget my C#).