我在 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 使用 Observable.FromAsync 创建一个 IObservable 序列(如果有帮助的话)。
顺便说一句,如果我删除该行,我在调用 Navigate 时会失败,因为它是从错误的线程发布的。那么,在这里做些什么来确保我回到正确的线程上是正确的?
顺便说一句,请原谅这里的“.Do”操作,我知道它不是“好”,但是,我仍在尝试丢弃代码。
提前谢谢了!