Mehrere Timer mit reaktiven Erweiterungen erstellen

Ich habe eine sehr einfache Klasse, die ich verwende, um ein Verzeichnis nach neuen Dateien abzufragen. Es gibt den Standort, eine Zeit, um mit der Überwachung dieses Standorts zu beginnen, und ein Intervall (in Stunden) für die erneute Überprüfung:

public class Thing
{
  public string         Name {get; set;}
  public Uri            Uri { get; set;}
  public DateTimeOffset StartTime {get; set;}
  public double         Interval {get; set;}
}

Ich bin neu in Reactive Extensions, aber ichdenken Es ist genau das richtige Werkzeug für den Job hier. Zur Startzeit und in jedem folgenden Intervall möchte ich einfach einen Webdienst anrufen, der das ganze schwere Heben erledigt - wir werden den immer erfinderischen verwendenpublic bool DoWork(Uri uri) das zu vertreten.

bearbeiten: DoWork ist ein Aufruf eines Webdienstes, der nach neuen Dateien sucht und diese bei Bedarf verschiebt, sodass die Ausführung asynchron erfolgen sollte. Wenn es abgeschlossen ist, wird ein true zurückgegeben, andernfalls ein false.

Kompliziert wird es, wenn ich eine ganze Sammlung davon habeThings. Ich kann mich nicht darum kümmern, wie man das schafftObservable.Timer() für jeden, und lassen Sie sie alle die gleiche Methode aufrufen.

edit2: Observable.Timer (DateTimeOffset, Timespan) scheint perfekt zu sein, um eine IObservable für das zu erstellen, was ich hier versuche. Gedanken?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage