JDB*_*JDB 4 f# sequence resource-management
我有一个简单的序列表达式,它使用了一个我想在我完成时清理的资源:
type MyObject() =
member this.Items =
seq {
use resource = ResourcePool.Get()
let c = resource.ValueCount
if c > 0 then
for i in 0 .. c - 1 do
yield resource.GetValue i
}
Run Code Online (Sandbox Code Playgroud)
如果我然后使用序列迭代,例如,在项目的中途进行迭代,那么资源何时会被处置?
例如:
// ...
let foo = MyObject
let item = foo.Items |> Seq.find ( fun i -> i.Name = "name" )
// ...
Run Code Online (Sandbox Code Playgroud)
将resource在Seq.find完成后处理?或者我是否需要重新考虑我的资源管理策略?