黒龍's Blog

明日から役立つ無駄知識をあなたに(仮)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  170  : 記事  0  : コメント  2719  : トラックバック  26

ニュース

わんくま同盟に参加させていただきました。
どうぞよろしくお願いします。

自己紹介

コミュニティ

  • わんくま同盟
    わんくま同盟

書庫

大事なことなのに放置してたのでエントリ。Rxでのいいところの一つにDisposeでのキャンセルがあると思います。とはいえ私もあまり詳しくないのでメモ代わりですがRxなクエリの最終段階の購読登録であるSubscribeメソッドですが戻りがIDisposableになってます。で、こいつのDisposeを呼ぶことでイベントハンドラから外れて以後のイベントは飛んでこなくなります。だいたい非同期にしたいからRx使うんで遅い(or その他)理由でキャンセルしたいケースがかなりあるかと思います。そんな時にDisposeってことで以前のコードにつけてみました。

で試してみるとおぉ~止まる。また取得して~おぉ~止まる。でもってまた取得して~~~?ん?取得しない??

なんか固まってるっぽい。てかこの挙動HTTPの通信上限っぽい動き^^;

イベントハンドラからは外れているもののそもそもの受信待ちの取得ができなくなってDisposeされてない感じに思えます。んむむ。。。どうやればいいのかさっぱりわからん。色々調べていくといろんなやり方がありそうだけどもneueさんところにあったWebRequestをAbortするパターンってのが良さげでした。ただソースが追いにくい。。。Rxの習熟度が低い私からみるとまるで魔法のようなコード。ちょっとしっかり覚えなきゃだなぁ。

投稿日時 : 2012年2月8日 0:49

コメント

# re: RXでのキャンセル 2012/02/08 12:28 noname
neueさんは魔法使い

# re: RXでのキャンセル 2012/02/08 21:27 黒龍
完全に同意。精進しなきゃだなぁ

# re: RXでのキャンセル 2012/02/08 21:27 黒龍
完全に同意。精進しなきゃだなぁ

# re: RXでのキャンセル 2012/02/08 21:27 黒龍
完全に同意。精進しなきゃだなぁ

Post Feedback

タイトル
名前
Url:
コメント