Получите следующее событие в последовательности каждую секунду с реактивными расширениями
У меня есть следующие типы ...
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; }
}
Событие NewItem в NewsFeed запускает события с помощью eventArgs типа NewsItemEventArgs. В моей системе события публикуются пакетами, скажем, 10 NewsItems в небольшом 1-секундном окне, а затем никаких новостей в течение 60 секунд. Я хотел бы сгладить эти всплески с помощью RX, чтобы мои новости в пользовательском интерфейсе отображались & apos; приходить по одному с более регулярными интервалами, скажем, 5 секунд.
Я знаю, что мне нужно создать наблюдаемую что-то вроде ниже
_source = Observable.FromEventPattern<NewsItemEventArgs>(
h => _newsFeed.NewItem += h,
h => _newsFeed.NewItem -= h);
но я не знаю, как преобразовать и подписаться на наблюдаемое так, чтобы я получал информацию о событиях, а не о событиях, описанных выше.
Есть идеи?