Представление обновления — Реактивные расширения

У меня есть следующий код:

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

Где XXX, YYY — это Schedulers.

Внутри SendCounter(t) я устанавливаю текст со значением t.

Проблема в том, что когда я запускаю код, я получаю эту ошибку:

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

Я использую этот компонент: https://components.xamarin.com/view/rxforxamarin


person Marcin Bortel    schedule 02.07.2016    source источник
comment
не слишком уверен, как использовать ObserveOn() и SubscribeOn() в xamarin. пробовал Scheduler.NewThread, но это устарело?   -  person filthy_wizard    schedule 18.10.2016


Ответы (3)


Убедитесь, что вы наблюдаете за основным потоком, чтобы вы могли напрямую влиять на представление.

person Hassan Semiu Ayomon    schedule 02.07.2016

Если вы используете ReactiveUI, используйте свой код, например, для:

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

Руководство по ReactiveUI

person Pellet    schedule 24.08.2017

person    schedule
comment
Это то, что мне было нужно! - person Marcin Bortel; 02.07.2016
comment
на что подписываться? как пользоваться этим планировщиком? - person filthy_wizard; 18.10.2016
comment
stackoverflow.com/questions/7579237 / - person xleon; 23.10.2016