BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) Metodo

Definizione

Genera l'evento ProgressChanged.

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)

Parametri

e
ProgressChangedEventArgs

Oggetto EventArgs contenente i dati dell'evento.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso del OnProgressChanged metodo per segnalare lo stato di avanzamento di un'operazione asincrona. Questo esempio di codice fa parte di un esempio più ampio fornito per la AsyncOperationManager classe .

// 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

Commenti

La generazione di un evento richiama il gestore eventi tramite un delegato. Per altre informazioni, vedere Gestione e generazione di eventi.

Il OnProgressChanged metodo consente anche alle classi derivate di gestire l'evento senza associare un delegato. Questa è la tecnica preferita per gestire l'evento in una classe derivata.

Note per gli eredi

Quando si esegue l'override OnProgressChanged(ProgressChangedEventArgs) in una classe derivata, assicurarsi di chiamare il metodo della OnProgressChanged(ProgressChangedEventArgs) classe di base in modo che i delegati registrati ricevano l'evento.

Si applica a

Vedi anche