public void Beat(WorkProgressState prog)
 {
     if (prog != null)
     {
         lblBeat.Text = prog.CurrentBeat.ToString();
         if (prog.CurrentBeat == 1)
         {
             lblMeasure.Text = prog.CurrentMeasure.ToString();
         }
     }
 }
Пример #2
0
        private void bgwRunCounting_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            WorkProgressState prog = (WorkProgressState)e.UserState;

            if (prog != null)
            {
                bbc1.Beat(prog.CurrentBeat);
                ucCounterDisplay.Beat(prog);
                if (prog.CurrentBeat == 1 && prog.CurrentMeasure == 1)
                {
                    if (bgwRunTimer.IsBusy == false)
                    {
                        bgwRunTimer.RunWorkerAsync();
                    }
                }
            }
        }
Пример #3
0
        private void bgwRunCounting_DoWork(object sender, DoWorkEventArgs e)
        {
            // Get the BackgroundWorker that raised this event.
            BackgroundWorker worker = sender as BackgroundWorker;

            while (e.Cancel == false)
            {
                if (worker.CancellationPending)
                {
                    e.Cancel = true;
                }
                else
                {
                    // Determine if count-in has been reached
                    if (++TotalBeats > CountIn)
                    {
                        IsCountingIn = false;
                    }

                    // Determine if end of measure reached
                    if (++CurrentBeat > BeatsPerMeasure)
                    {
                        CurrentBeat = 1;
                        if (IsCountingIn == false)
                        {
                            CurrentMeasure++;
                        }
                    }

                    WorkProgressState workState = new WorkProgressState
                    {
                        CurrentBeat    = CurrentBeat,
                        CurrentMeasure = CurrentMeasure
                    };
                    worker.ReportProgress(CurrentBeat / BeatsPerMeasure, workState);
                    Thread.Sleep(TimerValue);
                }
            }
        }
 protected void InitWorker() {
     CancellationPending = false;
     IsBusy = true;
     State = WorkProgressState.Unknown;
 }