Routing 使用ReactiveUI RouteServiceWhost的跨线程访问无效

Routing 使用ReactiveUI RouteServiceWhost的跨线程访问无效,routing,reactiveui,Routing,Reactiveui,我正在尝试学习ReactiveUI,目前正在尝试设置路由功能。我一直在“关注”github上的播放rxui-5-update分支: 在我设置RoutedViewHost的MainWindow.xaml中,出现以下错误: 无效的跨线程访问 …在以下行: rxui5版本的Play的MainWindow.xaml中也会生成相同的错误。您不能将窗口加载到RoutingViewHost中,因为它是一个控件。将用户控件加载到RoutingViewHost中,并创建一个顶层窗口,其内容仅为RoutingV

我正在尝试学习ReactiveUI,目前正在尝试设置路由功能。我一直在“关注”github上的播放rxui-5-update分支:

在我设置RoutedViewHost的MainWindow.xaml中,出现以下错误:

无效的跨线程访问

…在以下行:


rxui5版本的Play的MainWindow.xaml中也会生成相同的错误。

您不能将窗口加载到RoutingViewHost中,因为它是一个控件。将用户控件加载到RoutingViewHost中,并创建一个顶层窗口,其内容仅为RoutingViewHost

调用StackKK>System.Reactive.Core.dll!System.Reactive.Concurrency.AsyncLock.Wait(System.Action动作)+0x202字节System.Reactive.Linq.dll!System.Reactive.TailRecursiveSink.Run.AnonymousMethod__0(System.Action self)+0x65字节System.Reactive.Core.dll!System.Responsive.Concurrency.Scheduler.Schedule.AnonymousMethod\uuuu 45(System.Action\u Action,System.Action self)+0x97 ByTest运行时错误为:窗口必须是树的根。无法将窗口添加为Visual Studio的子级。设计时错误是:无效的跨线程访问。我的示例和播放示例之间的另一个区别是,我正在将窗口加载到RoutingViewHost中,而不是您的示例中的UserControls。这就解决了这个问题。谢谢Paul,路由正在运行。现在包括消息总线!你真的应该不惜一切代价避免使用消息总线——这是糟糕设计的标志;使用WhenAny接触子对象通常更好