大事なことなのに放置してたのでエントリ。Rxでのいいところの一つにDisposeでのキャンセルがあると思います。とはいえ私もあまり詳しくないのでメモ代わりですがRxなクエリの最終段階の購読登録であるSubscribeメソッドですが戻りがIDisposableになってます。で、こいつのDisposeを呼ぶことでイベントハンドラから外れて以後のイベントは飛んでこなくなります。だいたい非同期にしたいからRx使うんで遅い(or その他)理由でキャンセルしたいケースがかなりあるかと思います。そんな時にDisposeってことで以前のコードにつけてみました。
で試してみるとおぉ~止まる。また取得して~おぉ~止まる。でもってまた取得して~~~?ん?取得しない??
なんか固まってるっぽい。てかこの挙動HTTPの通信上限っぽい動き^^;
イベントハンドラからは外れているもののそもそもの受信待ちの取得ができなくなってDisposeされてない感じに思えます。んむむ。。。どうやればいいのかさっぱりわからん。色々調べていくといろんなやり方がありそうだけどもneueさんところにあったWebRequestをAbortするパターンってのが良さげでした。ただソースが追いにくい。。。Rxの習熟度が低い私からみるとまるで魔法のようなコード。ちょっとしっかり覚えなきゃだなぁ。