0

Rxフレームワークを使用して非同期リクエストを実行していますが、これはすべて正常に機能していますが、レスポンスを処理したら、リクエストとレスポンスの間で状態オブジェクトを渡すことができる必要があります。リクエストが行われたときにのみ認識されるため、何らかの方法で状態オブジェクトを渡したいと思います。

現在、私は次のような方法を使用しています。

 public void ProcessGetRequest(WebRequest request, Action<WebResponse> handle, Action<Exception> error, int delaySeconds = 0)
        {
            request.Method = "GET";

            Observable.FromAsyncPattern<WebResponse>(request.BeginGetResponse, request.EndGetResponse)().Delay(new TimeSpan(0, 0, delaySeconds)).ObserveOnDispatcher().SubscribeOnDispatcher().Subscribe(handle, error);
        }

request.BeginGetResponseメソッドで、状態オブジェクトを渡し、返されたIAsyncResultオブジェクトを介してその状態オブジェクトにアクセスできることはわかっていますが、上記のようにRx/Observableフレームワーク内でそれを行う方法を見つけることができません。誰かが私がこれを行う方法を知っていますか?

4

2 に答える 2

0

非常に単純なはずです。クロージャーを介して状態を渡します。

于 2012-04-09T01:23:52.303 に答える
0

最終的には以下のようになります。

  public void ProcessGetRequest<T>(WebRequest request, Action<WebResponse,T> handle, Action<Exception,T> error, T state, int delaySeconds = 0)
        {
            request.Method = "GET";

            Observable.FromAsyncPattern<WebResponse>(request.BeginGetResponse, request.EndGetResponse)().Delay(new TimeSpan(0, 0, delaySeconds)).ObserveOnDispatcher().SubscribeOnDispatcher().Subscribe(x=>handle(x,state),y=>error(y,state));
        }
于 2012-04-09T04:23:16.063 に答える