BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) Method

Definition

Raises the ProgressChanged event.

C#
protected virtual void OnProgressChanged(System.ComponentModel.ProgressChangedEventArgs e);

Parameters

e
ProgressChangedEventArgs

An EventArgs that contains the event data.

Examples

The following code example demonstrates the use of the OnProgressChanged method to report the progress of an asynchronous operation. This code example is part of a larger example provided for the AsyncOperationManager class.

C#
// This method is invoked via the AsyncOperation object,
// so it is guaranteed to be executed on the correct thread.
private void CalculateCompleted(object operationState)
{
    CalculatePrimeCompletedEventArgs e =
        operationState as CalculatePrimeCompletedEventArgs;

    OnCalculatePrimeCompleted(e);
}

// This method is invoked via the AsyncOperation object,
// so it is guaranteed to be executed on the correct thread.
private void ReportProgress(object state)
{
    ProgressChangedEventArgs e =
        state as ProgressChangedEventArgs;

    OnProgressChanged(e);
}

protected void OnCalculatePrimeCompleted(
    CalculatePrimeCompletedEventArgs e)
{
    if (CalculatePrimeCompleted != null)
    {
        CalculatePrimeCompleted(this, e);
    }
}

protected void OnProgressChanged(ProgressChangedEventArgs e)
{
    if (ProgressChanged != null)
    {
        ProgressChanged(e);
    }
}

Remarks

Raising an event invokes the event handler through a delegate. For more information, see Handling and Raising Events.

The OnProgressChanged method also allows derived classes to handle the event without attaching a delegate. This is the preferred technique for handling the event in a derived class.

Notes to Inheritors

When overriding OnProgressChanged(ProgressChangedEventArgs) in a derived class, be sure to call the base class's OnProgressChanged(ProgressChangedEventArgs) method so that registered delegates receive the event.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

See also