我有这个:
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.
这篇文章中的一小段代码让我开始了这条道路。目标是根据给定的开始时间和间隔,在 CheckFolder()
每次发布时ping Web 服务(通过方法)。Timer
问题是,每次我运行程序时,它都会为第一个 Watcher 输出一条消息,然后程序退出而没有错误。它得到第一个答案,它就完成了。
如何让它等待所有计时器的其他出版物?
我几乎可以肯定我没有以正确的方式提出这个问题,但希望一些反馈可以帮助我完善我的问题。
谢谢。