Exemple #1
0
        public void WatchDownloadPercentage(IntPtr windowPointer, Task <bool> downloadTask)
        {
            double percent = 0.0;

            while (!downloadTask.IsCanceled && !downloadTask.IsCompleted && !downloadTask.IsFaulted)
            {
                percent = DownloadControl.GetInstance().PercentDownloaded;

                if (percent < 1.0 && !downloadTask.IsCompleted)
                {
                    TaskbarUtils.SetTaskbarItemProgress(windowPointer, TaskbarProgressBarState.Normal, percent);
                }
                else if (!downloadTask.IsCompleted)
                {
                    TaskbarUtils.SetTaskbarItemProgress(windowPointer, TaskbarProgressBarState.Indeterminate, 1.0);
                    break;
                }
            }
        }
Exemple #2
0
        public Task <bool> DownloadVersionAsync(string downloadVersion, IntPtr windowPointer)
        {
            var downloadTask = Task.Factory.StartNew(new Func <bool>(() =>
            {
                if (!string.IsNullOrWhiteSpace(downloadVersion))
                {
                    return(DownloadControl.GetInstance().DownloadVersion(downloadVersion));
                }
                else
                {
                    return(false);
                }
            }));

            downloadTask.Start();

            var watchPercentageTask = Task.Factory.StartNew(new Action(() => WatchDownloadPercentage(windowPointer, downloadTask)));

            watchPercentageTask.Start();

            return(downloadTask);
        }
Exemple #3
0
 private void StopDownloads()
 {
     DownloadControl.GetInstance().StopAllDownloads();
     StartControl.GetInstance().StopAllDownloads();
 }