2016-07-02 42 views
0

:XXX、YYYはSchedulersある更新ビュー - 私は次のコード持っている反応性機能拡張

Observable.Interval(TimeSpan.FromMilliseconds(2500)).SubscribeOn(XXX).ObserveOn(YYY).Subscribe( t => SendCounter(t), e => HandleException(e));

Inside SendCounter(t)t値のテキストを設定しました。

問題は、私は、コードを実行したときに、私はこのエラーを得たことである:

'only the original thread that created a view hierarchy can touch its views' 

私はこのコンポーネントを使用しています:https://components.xamarin.com/view/rxforxamarin

+1

[エラーの可能性の重複:ビュー階層が触れることができます作成​​しただけ元のスレッドにそのビューでは、xamarin](http://stackoverflow.com/questions/21162096/error-only-the-original-thread-that-c​​reated-a-view-hierarchy-can-touch-its-view) – SushiHangover

+0

あまりにもわからないxamarinでObserveOn()とSubcribeOn()を自分で使用するScheduler.NewThreadを試みましたが、廃止予定ですか? –

答えて

2
var uiThread = SynchronizationContext.Current; 

Observable 
    .Interval(TimeSpan.FromMilliseconds(2500)) 
    .SubscribeOn(XXX) 
    .ObserveOn(uiThread) 
    .Subscribe(t => SendCounter(t), e => HandleException(e)); 
+0

これは私が必要なものです! –

+0

私は何を購読しますか?このスケジューラーはどのように使用しますか? –

+0

http://stackoverflow.com/questions/7579237/whats-the-difference-between-subscribeon-and-observeon – xleon

1

をあなたができるように、メインスレッド上で守っていることを確認してください直接ビューに影響を与えます。

0

あなたはReactiveUIは、例えば、このようなあなたのコードを使用して使用している場合:

searchButton 
.SelectMany(async x => await executeSearch(x)) 
.ObserveOn(RxApp.MainThreadScheduler) 
.ToProperty(this, x => x.SearchResults, out searchResults); 

ReactiveUI handbook

関連する問題