通常加载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(() => { //主线程执行的代码 });说明:这样的话 会等待主线程调用 而不是抢着调用