AsyncIsNotParallel.MainWindow.DoWorkAsync C# (CSharp) Method

DoWorkAsync() private method

private DoWorkAsync ( Color color, int column, int delay ) : Task
color Color
column int
delay int
return Task
        private async Task DoWorkAsync(Color color, int column, int delay)
        {
            for (int i = 0; i < 5; i++)
            {
                // perform some asynchronous task in various ways
                // await Task.Yield();       // yields immediately
                // await Task.Delay(0);      // continues synchronously
                // await Task.Delay(100);     // continues asynchronously on UI thread
                // await Task.Delay(0).ConfigureAwait(false);    // continues synchronously
                // await Task.Delay(100).ConfigureAwait(false);   // continues asynchronously on any thread

                var startTime = sw.ElapsedMilliseconds;

                // spin here for 'delay' milliseconds just to keep busy
                while (sw.ElapsedMilliseconds < startTime + delay) { /* do nothing */ }

                var endTime = sw.ElapsedMilliseconds;

                Dispatcher.BeginInvoke((Action)(() => AddTimeRectangle(
                                                startTime, endTime, color, column)));
            }
        }