private void UpdateListOfPackages() { cbPackages.Items.Clear(); Task.Factory .StartNew(() => pkgVer.GetFromGitHubAsync()) .ContinueWith(t => { var rctask = t.Result; var releases = rctask.Result.ToArray(); cbPackages.UIAction(x => x.Items.AddRange(releases)); int pos = cbPackages.FindString(pkgVer.Activated); cbPackages.UIAction(x => { if (pos == -1) { x.Text = pkgVer.Activated; } else { x.SelectedIndex = pos; } }); }); }
private void UpdateListOfPackages() { const int _ANI_DELAY = 550; //ms if (tUpdater != null && tUpdater.Status != TaskStatus.Running && !(tUpdater.IsCompleted || tUpdater.IsCanceled || tUpdater.IsFaulted)) { return; } ctsUpdater = ctsUpdater.CancelAndResetIfRunning(tUpdater, _ANI_DELAY * 2); tUpdater?.Dispose(); cbPackages.Items.Clear(); ((Control)tabUpdating).Enabled = false; tUpdater = Task.Factory .StartNew(() => pkgVer.GetFromGitHubAsync(ctsUpdater.Token), ctsUpdater.Token) .ContinueWith(t => { var rctask = t.Result; var releases = rctask.Result.ToArray(); cbPackages.UIAction(x => x.Items.AddRange(releases)); int pos = cbPackages.FindString(pkgVer.Activated); cbPackages.UIAction(x => { if (pos == -1) { x.Text = pkgVer.Activated; } else { x.SelectedIndex = pos; } }); return(releases); }, ctsUpdater.Token) .ContinueWith(t => { tabUpdating.UIAction(x => x.Enabled = true); if (!pkgVer.IsNewStableVersionFrom(t.Result, out Version remote)) { return; } tabUpdating.UIBlinkText ( _ANI_DELAY, $" Up to {remote}", ctsUpdater.Token, "^....", ".^...", "..^..", "...^.", "....^", "..... " ); tabUpdating.UIAction(x => x.Text = updaterInitName); }, ctsUpdater.Token); }