WPF 加载页面的技巧

    技术2022-07-11  85

    通常加载N多东西会非常慢

    言简意赅 直接上步骤

     

    1.空界面 随便怎么画

    2.viewmodel

     初始化里面使用代码

     

    public LaunchViewModel() { DispatcherHelper.Initialize(); Task.Run(async () => { await Task.Delay(600); await OnStartupInit(); }); }

    说明:卡600毫秒是为了 防止线程里面 有需要主线程调用的东西,依然会不卡住

     

    3.初始化中有需要界面交互,的内容的需要包装一下

    Task.Run(async () => { await Application.Current.Dispatcher.InvokeAsync(() => { var mintionWindow = new Window(); mintionWindow.ShowDialog; }); });

    说明: 如果不await 这个界面不会卡住

     

    4.有些需要主线程执行的

    await Application.Current.Dispatcher.InvokeAsync(() => { //主线程执行的代码 });

    说明:这样的话 会等待主线程调用 而不是抢着调用

    Processed: 0.009, SQL: 9