我实现了一个,我想知道当我在块中TransformManyBlock<Tin,Tout>
返回一个空时,该空会保留在系统中的任何位置,还是会被垃圾收集或丢弃?显然,如果我改用 a ,我需要自己处理这种情况,但我想知道这是否已经由.IEnumerable
IEnumerable
IEnumerable
TransformBlock
TransformManyBlock
我想我想知道的是 TPL 是否会为我处理那个空的 IEnumerable 的处理,或者我是否需要自己处理它。
我实现了一个,我想知道当我在块中TransformManyBlock<Tin,Tout>
返回一个空时,该空会保留在系统中的任何位置,还是会被垃圾收集或丢弃?显然,如果我改用 a ,我需要自己处理这种情况,但我想知道这是否已经由.IEnumerable
IEnumerable
IEnumerable
TransformBlock
TransformManyBlock
我想我想知道的是 TPL 是否会为我处理那个空的 IEnumerable 的处理,或者我是否需要自己处理它。
IEnumerable<T>
没有实现IDisposable
,并且大多数(如果不是全部)标准实现IEnumerable<T>
也没有实现IDisposable
。因此,如果您实际上返回需要处置的集合的实例,TPL 不会为您处置它。
但是,如果你想返回一个空的可枚举,这真的不应该是这样,因为在这种情况下你可以只返回Enumerable.Empty<T>()
or new T[0]
。
实际上,我认为您混淆了“处置”和“垃圾收集”。
一旦没有更多指向它的引用,空的可枚举将可用于垃圾收集。
因此,总结一下:您不必担心这一点,除非您想返回一个非常奇特的可枚举实现。