我有以下类型...
public class NewsFeed
{
public event EventHandler<NewsItemEventArgs> NewItem;
.....
}
public class NewsItemEventArgs : EventArgs
{
public NewsItem Item;
public NewsItemEventArgs(NewsItem newsItem)
{
Item = newsItem;
}
}
public class NewsItem
{
public int Id { get; set; }
public string Title { get; set; }
public string Body { get; set; }
}
NewsFeed 的 NewItem 事件触发带有 NewsItemEventArgs 类型的 eventArgs 的事件。在我的系统中,事件以突发形式发布,例如在 1 秒的小窗口中发布 10 个 NewsItems,然后在 60 秒内没有进一步的新闻报道。我想用 RX 来平滑这些突发事件,这样我的 UI 新闻故事“似乎”以更规律的间隔(比如 5 秒)一次到达一个。
我知道我需要创建一个类似下面的 observable
_source = Observable.FromEventPattern<NewsItemEventArgs>(
h => _newsFeed.NewItem += h,
h => _newsFeed.NewItem -= h);
但我不知道如何转换和订阅 observable,以便我得到事件的滴灌,而不是上述突发事件。
有任何想法吗?