Esempio n. 1
0
 private void progress_ProgressChanged(object sender, ProgressReport e)
 {
     CurrentProgressReport = e;
 }
Esempio n. 2
0
        private async Task DoProcessingTask(CancellationToken cancellationToken,
                                            IProgress <ProgressReport> progress = null)
        {
            int numRandoms = 100000;
            var generator  = new Random();

            _randomNumList = new List <int>();
            for (int i = 0; i < numRandoms; i++)
            {
                int randomNum = generator.Next();
                _randomNumList.Add(randomNum);
            }

            int    numSorts        = 1000;
            double percentComplete = 0;

            await Task.Run(() =>
            {
                for (int i = 0; i < numSorts; i++)
                {
                    //TODO: this isn't working yet!!!
                    cancellationToken.ThrowIfCancellationRequested();

                    var copiedList = new List <int>(_randomNumList);
                    copiedList.Sort();

                    percentComplete = i / (double)numSorts * 100;

                    string progressString;
                    if (percentComplete < 15)
                    {
                        progressString = "Starting...";
                    }
                    else if (percentComplete >= 15 && percentComplete <= 75)
                    {
                        progressString = "Sorting...";
                    }
                    else if (percentComplete > 75)
                    {
                        progressString = "Almost done.";
                    }
                    else if (Math.Abs(percentComplete - 100) < 1)
                    {
                        progressString = "COMPLETE!!! ";
                    }
                    else
                    {
                        progressString = "";
                    }

                    if (progress != null)
                    {
                        progress.Report(new ProgressReport
                        {
                            ProgressString = progressString,
                            ProgressValue  = percentComplete
                        });
                    }
                }
            }, cancellationToken);

            CurrentProgressReport = new ProgressReport {
                ProgressValue = 100, ProgressString = "COMPLETE!!!"
            };
        }