我有一个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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top