Создание нескольких таймеров с реактивными расширениями
У меня есть очень простой класс, который я использую, чтобы опросить каталог для новых файлов. У него есть местоположение, время для начала мониторинга этого местоположения и интервал (в часах), когда нужно проверять снова:
public class Thing
{
public string Name {get; set;}
public Uri Uri { get; set;}
public DateTimeOffset StartTime {get; set;}
public double Interval {get; set;}
}
Я новичок в Reactive Extensions, но ядумать это именно то, что нужно для работы здесь. Во время запуска и на каждом последующем интервале я просто хочу позвонить в веб-службу, которая выполняет всю тяжелую работу - мы будем использовать всегда изобретательныйpublic bool DoWork(Uri uri)
представлять это.
редактировать: DoWork - это вызов веб-службы, которая проверяет новые файлы и перемещает их при необходимости, поэтому его выполнение должно быть асинхронным. Возвращает истину, если она выполнена, ложь, если нет.
Все становится сложнее, если у меня есть целая коллекция этихThing
s. Я не могу обернуть голову, как создатьObservable.Timer()
для каждого, и пусть все они вызывают один и тот же метод.
edit2: Observable.Timer (DateTimeOffset, Timespan) кажется идеальным для создания IObservable для того, что я пытаюсь сделать здесь. Мысли?