如何更新UI时Observable.Context不可用?
-
21-09-2019 - |
题
我有一个WinFrom应用程序,使用同步方法从网址下载字符串,并使用的Rx ToAsync方法,使之异步并获得可观察到的结果,当结果来了,我表现出来的形式。
昨天,我更新的Rx到最新版本,它被告知,“可观察不包含上下文的定义”。我想评论这条线,代码抛出一个异常“跨线程操作无效:控制‘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;
}
解决方案
有关您的return语句,尝试:
return results.ObserveOnDispatcher();
不隶属于 StackOverflow