BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) Metoda

Definicja

ProgressChanged Wywołuje zdarzenie.

protected:
 virtual void OnProgressChanged(System::ComponentModel::ProgressChangedEventArgs ^ e);
protected virtual void OnProgressChanged(System.ComponentModel.ProgressChangedEventArgs e);
abstract member OnProgressChanged : System.ComponentModel.ProgressChangedEventArgs -> unit
override this.OnProgressChanged : System.ComponentModel.ProgressChangedEventArgs -> unit
Protected Overridable Sub OnProgressChanged (e As ProgressChangedEventArgs)

Parametry

e
ProgressChangedEventArgs

Element EventArgs zawierający dane zdarzenia.

Przykłady

Poniższy przykład kodu przedstawia użycie OnProgressChanged metody do raportowania postępu operacji asynchronicznej. Ten przykład kodu jest częścią większego przykładu udostępnionego dla klasy AsyncOperationManager.

// This method is invoked via the AsyncOperation object,
// so it is guaranteed to be executed on the correct thread.
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.
void ReportProgress(object state)
{
    ProgressChangedEventArgs e =
        state as ProgressChangedEventArgs;

    OnProgressChanged(e);
}

protected void OnCalculatePrimeCompleted(
    CalculatePrimeCompletedEventArgs e) =>
    CalculatePrimeCompleted?.Invoke(this, e);

protected void OnProgressChanged(ProgressChangedEventArgs e) =>
    ProgressChanged?.Invoke(e);
' This method is invoked via the AsyncOperation object,
' so it is guaranteed to be executed on the correct thread.
Private Sub CalculateCompleted(ByVal operationState As Object)
    Dim e As CalculatePrimeCompletedEventArgs = operationState

    OnCalculatePrimeCompleted(e)

End Sub


' This method is invoked via the AsyncOperation object,
' so it is guaranteed to be executed on the correct thread.
Private Sub ReportProgress(ByVal state As Object)
    Dim e As ProgressChangedEventArgs = state

    OnProgressChanged(e)

End Sub

Protected Sub OnCalculatePrimeCompleted( _
    ByVal e As CalculatePrimeCompletedEventArgs)

    RaiseEvent CalculatePrimeCompleted(Me, e)

End Sub


Protected Sub OnProgressChanged( _
    ByVal e As ProgressChangedEventArgs)

    RaiseEvent ProgressChanged(e)

End Sub

Uwagi

Wywoływanie zdarzenia wywołuje procedurę obsługi zdarzeń za pośrednictwem delegata. Aby uzyskać więcej informacji, zobacz Obsługa i podnoszenie zdarzeń.

Metoda OnProgressChanged umożliwia również klasom pochodnym obsługę zdarzenia bez dołączania delegata. Jest to preferowana technika obsługi zdarzenia w klasie pochodnej.

Notatki dotyczące dziedziczenia

Podczas zastępowania OnProgressChanged(ProgressChangedEventArgs) w klasie pochodnej należy wywołać metodę klasy OnProgressChanged(ProgressChangedEventArgs) bazowej, aby zarejestrowani delegaci odbierali zdarzenie.

Dotyczy

Zobacz też