Buffer等操作符的开闭边界是什么意思?

What is the meaning of opening and closing boundaries with regard to operators such as Buffer?

我不明白需要打开或关闭边界的 Buffer 运算符的重载。我指的重载是:

public static IObservable<IList<TSource>> Buffer<TSource, 
TBufferClosing>(this IObservable<TSource> source, 
Func<IObservable<TBufferClosing>> bufferClosingSelector)

public static IObservable<IList<TSource>> Buffer<TSource, 
TBufferBoundary>(this IObservable<TSource> source, 
IObservable<TBufferBoundary> bufferBoundaries)

public static IObservable<IList<TSource>> Buffer<TSource, 
TBufferOpening, TBufferClosing>(this IObservable<TSource> source, 
IObservable<TBufferOpening> bufferOpenings, Func<TBufferOpening, 
IObservable<TBufferClosing>> bufferClosingSelector)

能否请您举例说明这些边界的含义?

它们等效于此处记录的 Window 运算符(但每个 window 产生 IList<T> 而不是 IObservable<T>)- http://introtorx.com/Content/v1.0.10621.0/17_SequencesOfCoincidence.html

我建议暂停并阅读目前在 Rx 上的一些 doco。这是一个小领域,但有很多小概念。这些的构成是理解它的关键。例如,阅读所有 IntroToRx 需要几个小时(只有 17 页)。