在wpf应用程序中混合并行性和异步

时间:2016-02-19 10:52:59

标签: c# wpf asynchronous mvvm mvvm-light

我需要在WPF启动代码中混合 parallelismasync个概念:

 protected override async void OnStartup(StartupEventArgs e) 
 {
     AppDomain currentDomain = AppDomain.CurrentDomain;
     currentDomain.UnhandledException += currentDomain_UnhandledException;
     ViewModelLocator locator = (ViewModelLocator)App.Current.Resources["Locator"];
     SimpleIoc.Default.GetInstance<MainViewModel>();
     SimpleIoc.Default.GetInstance<IndexViewModel>();
     Func<Task> fsignHandler = async () => { await Task.Run(() => { SimpleIoc.Default.GetInstance<Fiche_SignaletiqueViewModel>(); Debug.WriteLine("fsign loaded"); }); };
     Func<Task> formationHandler = async () => { await  Task.Run(() => { SimpleIoc.Default.GetInstance<FormationsViewModel>(); }); };
     await Task.WhenAll(fsignHandler(), formationHandler());
}

我遇到了这些问题:

  1. 在输出窗口中,我收不到消息fsign loaded
  2. 我使用MVVM light及其IoC SimpleIOC:当我导航到菜单Fiche_SignaletiqueFiche_SignaletiqueViewModel作为视图模型时) Fiche_SignaletiqueViewModel 将被实例化,表明永远不会执行fsignHandler !!!!
  3. 我需要知道:

    • 这些问题的原因是什么?
    • 我提交的错误是什么?
    • 如何修复我的代码?

0 个答案:

没有答案