private void CheckForUpdates() { if (UpdateClient.IsOnline()) { // Check for the latest released version on a background thread. var worker = new BackgroundWorker(); worker.DoWork += (sender, e) => { e.Result = UpdateClient.GetLatestReleasedVersion(this.Logger); }; worker.RunWorkerCompleted += (sender, e) => { if (e.Error != null) { this.Logger.Log("An unexpected exception occurred while checking for updates", e.Error); } else { var latestVersion = (ApplicationVersion)e.Result; if (latestVersion != null && latestVersion.VersionNumber > App.ApplicationVersion) { // If the latest released version is newer than the current, return the version and URL. this.NewVersionMessage = string.Format(CultureInfo.CurrentCulture, "A new version is available: v{0}!", latestVersion.VersionNumber.ToString()); this.NewVersionUrl = latestVersion.DownloadUrl.ToString(); this.NewVersionVisibility = Visibility.Visible; } } }; worker.RunWorkerAsync(); } }