Beispiel #1
0
        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;
                    }
                });
            });
        }
Beispiel #2
0
        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);
        }