Symphonary.NWGUI.CanvasNotesScheduledAdder C# (CSharp) Method

CanvasNotesScheduledAdder() private method

private CanvasNotesScheduledAdder ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void CanvasNotesScheduledAdder(object sender, EventArgs e)
        {
            double percentagePlayed = (double) playDuration.ElapsedMilliseconds/midiInfo.Duration;
            if (curCanvasLastNoteIndex < stringAllocator.AllocSingleArr.Length - 1)
            {
                double percentageAddedToCanvas =
                    (double) stringAllocator.AllocSingleArr[curCanvasLastNoteIndex].BeginTime/midiInfo.Duration;
                if (percentageAddedToCanvas < percentagePlayed + 0.20)
                {
                    System.Console.WriteLine("{0} {1}", percentageAddedToCanvas, percentagePlayed);
                    int firstNoteIndex = curCanvasLastNoteIndex + 1;
                    double percentage = -1;
                    for (curCanvasLastNoteIndex = firstNoteIndex; curCanvasLastNoteIndex < stringAllocator.AllocSingleArr.Length; curCanvasLastNoteIndex++)
                    {
                        percentage = (double) stringAllocator.AllocSingleArr[curCanvasLastNoteIndex].BeginTime/midiInfo.Duration;
                        if (percentage > percentagePlayed + 0.20)
                        {
                            break;
                        }
                    }

                    Dispatcher.BeginInvoke(DispatcherPriority.Normal,
                                           new Action(delegate
                                                          {
                                                              AddNotesToCanvas(firstNoteIndex,
                                                                               curCanvasLastNoteIndex);
                                                          }));
                }
            }
        }