O que estou perdendo com temporizadores de extensão reativa?
Eu tenho isto:
watchers
.ToObservable() // needs to be observable
.SelectMany(watcher => // working on each watcher
Observable
// create a timer for the watcher
.Timer(watcher.StartTime, TimeSpan.FromHours(watcher.Interval))
.SelectMany(Observable.FromAsync(
async () => new { watcher, result = await CheckFolder(watcher.Path) })))
.Subscribe(x => Console.WriteLine(string.Format("Watcher: {0}\tResult: {1}\tTime: {2}", x.watcher.Name, x.result, DateTimeOffset.Now))); // tell everyone what happened.
Que é um bom pedaço de código deesta postagem Isso me fez começar essa estrada. O objetivo é fazer ping em um serviço da Web (viaCheckFolder()
método) toda vez que oTimer
s publicar, com base em um determinado horário de início e intervalo.
O problema é que, toda vez que eu executo o programa, ele gera uma única mensagem para o primeiro Inspetor e, em seguida, o programa sai sem erro. Obtém a primeira resposta e está terminado.
Como fazê-lo esperar pelas outras publicações de todos os timers?
Estou quase certo de que não estou fazendo essa pergunta da maneira certa, mas espero que um pequeno feedback me ajude a refinar minha pergunta.
Obrigado.