示例#1
0
        private void MActivityExecutor_ActivityProgressUpdated(object sender, ActivityProgressUpdatedEventArgs eventArgs)
        {
            if (!Visible)
            {
                return;
            }

            if (InvokeRequired)
            {
                Invoke(new EventHandler <ActivityProgressUpdatedEventArgs>(MActivityExecutor_ActivityProgressUpdated), sender, eventArgs);
                return;
            }

            SuspendLayout();
            mActivityProgressLabel.Text = eventArgs.StatusText;
            if (eventArgs.TotalWork == -1)
            {
                mActivityProgressBar.Style   = ProgressBarStyle.Marquee;
                mActivityProgressBar.Maximum = 1;
                mActivityProgressBar.Value   = 0;
            }
            else
            {
                long totalWork = eventArgs.TotalWork;
                long doneWork  = eventArgs.DoneWork;

                while (totalWork > int.MaxValue)
                {
                    totalWork /= 1000;
                    doneWork  /= 1000;
                }
                if (doneWork > totalWork)
                {
                    totalWork = doneWork;
                }

                mActivityProgressBar.Style   = ProgressBarStyle.Continuous;
                mActivityProgressBar.Maximum = (int)totalWork;
                mActivityProgressBar.Value   = (int)doneWork;
            }

            ResumeLayout(true);
        }
示例#2
0
 public void OnActivityProgressUpdated(ActivityProgressUpdatedEventArgs activityProgressUpdatedEventArgs)
 {
     ActivityProgressUpdated?.Invoke(this, activityProgressUpdatedEventArgs);
 }