WPF 加載頁面的技巧

通常加載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(() =>
             {
                //主線程執行的代碼
             });

說明:這樣的話 會等待主線程調用 而不是搶着調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章