通常加載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(() =>
{
//主線程執行的代碼
});
說明:這樣的話 會等待主線程調用 而不是搶着調用