private void _backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            var cancellationToken = _cancellationTokenSource?.Token ?? CancellationToken.None;

            var eventArgs = new ProgressDialogDoWorkEventArgs(e.Argument, cancellationToken)
            {
                Cancel = e.Cancel,
                Result = e.Result,
            };

            OnDoWork(eventArgs);

            e.Cancel = eventArgs.Cancel;
            e.Result = eventArgs.Result;
        }
        /// <summary>
        /// Raises the <see cref="DoWork"/> event.
        /// </summary>
        /// <param name="e">The <see cref="ProgressDialogDoWorkEventArgs"/> containing data for the event.</param>
        protected virtual void OnDoWork(ProgressDialogDoWorkEventArgs e)
        {
#pragma warning disable CS0618 // Type or member is obsolete
            OnDoWork((DoWorkEventArgs)e);
#pragma warning restore CS0618 // Type or member is obsolete
        }