3

ここにRx用の素晴らしいF#ワークフロービルダーがあります:

http://blogs.msdn.com/b/dsyme/archive/2011/05/30/nice-f-syntax-for-rx-reactive-extensions.aspx

私はワークフローのUsing実装を作成しようとしていますが、壁に頭をぶつけ続けています。多分ここでは手遅れです。

これをどのように作成しますか?

type RxBuilder () =

    // ...

    member this.Using (disposable, f) =
        Observable.Using(???)

前もって感謝します。

4

1 に答える 1

4

まず、最新のRxリリースでは、元のコードを少し更新する必要があります。つまり、次のように実装する必要がありますForWhile

member this.For (xs : 'a seq, f: 'a -> 'b IObservable) =
    Observable.SelectMany(xs.ToObservable(), new Func<_, IObservable<_>>(f)) 

member this.While (f, xs: 'a IObservable) =
    Observable.TakeWhile (xs, new Func<_,bool>(fun _ -> f()))

次に、これに基づいて、以下を実装に使用できますUsing

member this.Using(res:#IDisposable, body) = this.TryFinally(body res, fun () -> match res with null -> () | disp -> disp.Dispose())
于 2012-06-18T00:17:39.320 に答える