Применить Rx
От: _NN_ www.nemerleweb.com
Дата: 26.01.14 13:14
Оценка:
Я получаю события с такой структурой:
class Data
{
 public int counter;
 public int type;
 public int timestamp;
}


Задача:
Подождать какой-то период времени, чтобы получить несколько событий.
Отсортировать все по возрастающим значениям counter.
Найти смежные данные : counter, counter + 1.
Если timestamp2 — timestamp1 меньше T и type первого 0 , а второго 1 , то выдать новое событие.
Далее эти данные отбрасываются как ненужные, чтобы counter+1, counter+2 не сгенерировало еще событие

Вручную все описывается несложно, поток, очередь и проверки.
Возможно ли в этой ситуации применить Rx чтобы получить более декларативный код ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Применить Rx
От: TK Лес кывт.рф
Дата: 26.01.14 16:19
Оценка: +2
Здравствуйте, _NN_, Вы писали:

_NN>Вручную все описывается несложно, поток, очередь и проверки.

_NN>Возможно ли в этой ситуации применить Rx чтобы получить более декларативный код ?

Попробуйте Observable.Buffer<TSource> Method (IObservable<TSource>, TimeSpan), Observable.Scan<TSource> Method (IObservable<TSource>, Func<TSource, TSource, TSource>)
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.