我有一个 WinFrom 应用程序,使用同步方法从 url 下载字符串,并使用 Rx ToAsync 方法使其异步并获得可观察的结果,当结果出现时,我将其显示在 Form 上。
昨天,我将 Rx 更新到最新版本,并被告知“Observable 不包含 Context 的定义”。我试着评论这一行,代码抛出了一个异常“跨线程操作无效:控制'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;
}