C# 使用SplashScreenService构建应用程序

C# 使用SplashScreenService构建应用程序,c#,mvvm,catel,C#,Mvvm,Catel,我正在尝试使用SplashScreenService向用户显示启动应用程序的进度。在任务中,我正在创建记录器、容器、配置容器、创建和初始化我的主窗口视图+视图模型等等。。。引导者的任务 但是SplashScreenService在提交时拒绝了他的工作,因为Application.Current.MainWindow==null。问题是Application.Current.MainWindow是在初始化任务中设置的。 我可以通过临时设置Application.Current.MainWindow

我正在尝试使用SplashScreenService向用户显示启动应用程序的进度。在任务中,我正在创建记录器、容器、配置容器、创建和初始化我的主窗口视图+视图模型等等。。。引导者的任务

但是SplashScreenService在提交时拒绝了他的工作,因为Application.Current.MainWindow==null。问题是Application.Current.MainWindow是在初始化任务中设置的。 我可以通过临时设置Application.Current.MainWindow=splashScreenService之前的新窗口来解决此问题。通过将我的主窗口的所有者设置为null,提交并修复此问题。所有者被设置为PleaseWait对话框,因此也关闭了主窗口


那么为什么必须设置Application.Current.main窗口才能使SplashScreenService正常工作呢?在服务中没有使用此属性的代码。我只能在所有其他任务完成后才能创建主窗口——这真是个鸡和蛋的问题

刚刚检查了源代码,我发现有点误导。你能试试CommitAsync吗?我试过了。但只要不设置主窗口,这是一个无止境的循环;-信息:我仍然在Catel 4.1.0上。。。下周继续学习4.2.0。让我知道4.2的运行情况。如果仍然有问题,请创建一个问题。仍然表现相同。。。正在创建票证。请参阅。