IObservable があります。プロパティの変更には、エンティティ ID と PropertyName があります。これを使用してデータベースを更新したいのですが、複数のプロパティがほぼ同時に変更された場合、同じエンティティのすべてのプロパティに対して 1 つの更新のみを実行したいと考えています。
これが静的な IEnumerable で、LINQ を使用していた場合は、次のように簡単に使用できます。
MyList.GroupBy(C=>C.EntityID);
ただし、リストが終了することはありません (決して IObserver.OnComplete を呼び出しません)。私ができるようにしたいのは、一定時間、たとえば 1 秒間待機し、その 1 秒間にすべての呼び出しを適切にグループ化することです。
理想的には、EntityID ごとに個別のカウンターを用意し、その EntityID の新しいプロパティの変更が検出されるたびにカウンターをリセットします。
すべてのプロパティの変更を処理したいので、Throttle のようなものは使用できません。それらをまとめて一度に処理したいだけです。