我在Windows应用商店中使用反应式扩展(好吧,尝试,学习)。我有一系列异步操作,最终将导航到RTM的授权网页。鉴于我已经完成的阅读,我希望写出如下内容:
var result = rtm
.GetFrob()
.Select(s => rtm.GetAuthenticationUrl(s))
.ObserveOnDispatcher()
.Do(uri => AuthWebView.Navigate(new Uri(uri)))
.First();
但是,我似乎无法找到方法ObserveOnDispatcher,而且还没有Scheduler.Dispatcher属性,这让我想到在Windows应用商店应用程序上有一些更深入的主要UI线程和你如何参考它。
GetFrob,btw,使用Observable.FromAsync创建一个IObservable序列(如果这有助于此)。
顺便说一句,如果我删除该行,我在调用Navigate时失败,因为它是从错误的线程发布的。那么,在这里做什么才能确保我回到正确的线程?
顺便说一句,请原谅这里的“.Do”操作,我知道这不是“好”,不过,我还在尝试丢弃代码。非常感谢提前!
答案 0 :(得分:4)
哎呀。显然我只是在搜索时不够好。 :(
事实证明,添加nuget包Rx-Xaml包括调度程序的正确程序集等。详细信息可以在主Rx blog上找到。当然,我的应用程序现在又回到了悬挂状态,但这可能是由于我自己的一些愚蠢行为。