Привет! Я пытаюсь реализовать службу Windows, которая подписывается и публикуется на IObservables.
Я использовал http://blogs.tedneward.com/2010/11/20/Windows+Service+In+F.aspx из блога Теда Ньюарда в качестве отправной точки.
type WindowsService() as this
let createAndPublishObservables() =
let obs1 = createObservable1()
let obs2 = createObservable2()
let combObs = Observable.CombineLatest(obs1, obs2) |> map ( fun (firstObsValue, secObsValue) -> firstObsValue + secObsValue)
let obsUpdater = new ObsUpdater()
let updaterPublish = combObs.subscribe( fun x -> obsUpdater.publish(x), ignore, fun () -> ())
override this.OnStart(args:string[])
base.OnStart(args)
// and so on....
когда я пытаюсь отладить этот код, создается впечатление, что служба завершает свое выполнение, а подписчики и издатели выходят из области видимости (поэтому реактивность исчезает).
Нужно ли добавить что-то дополнительно, например, насос сообщений, чтобы это заработало? (если бы он работал в форме окна, но переход на службу до сих пор не увенчался успехом.)
Спасибо за помощь!