Как я могу обновить пользовательский интерфейс при наблюдении. Контекст недоступен?
-
21-09-2019 - |
Вопрос
У меня есть приложение Winfrom, я использую синхронный метод для загрузки строки из URL и использую метод RX Toasync, чтобы сделать ее асинхронным и получить наблюдаемый результат, и когда результат приходит, я показываю его в форме.
Вчера я обновил RX до последнего выпуска, и было сказано, что «наблюдаемый не содержит определения контекста». Я попробовал прокомментировать эту строку, коды бросили исключение, что «операция по перекрестной трубе не действительна: Control 'tbx_reference», доступный из потока, кроме потока, на которой он был создан ».
Я хочу показать асинхронный результат, используя метод подписки. Как я могу решить эту проблему? Спасибо большое.
public static IObservable<TResult> DoWorkAsync(TParameter parameter,
Func<TParameter,TResult> actionSync)
{
Observable.Context = SynchronizationContext.Current;
Func<TParameter, IObservable<TResult>> ActionAsync = actionSync.ToAsync();
IObservable<TResult> results = from result in ActionAsync(parameter)
select result;
return results;
}
Решение
For your return statement, try:
return results.ObserveOnDispatcher();
Не связан с StackOverflow