public static void Do() { var getter = new RemoteVersionInfoGetter(); if (!isFristCheck) { MainWindowBus.Info("Update.CheckingUpdate"); } getter.Advance().ContinueWith(task => { if (task.IsFaulted) { if (!isFristCheck) { MainWindowBus.Error("Update.Failed"); } } else { if (task.Result.Version > Self.Version) { App.Current.Dispatcher.Invoke(() => { DoAsk(task.Result); }); } else { MainWindowBus.Success("Update.IsLatestVersion"); } } isFristCheck = false; }); }