BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs) Method

定義

ProgressChanged イベントを発生させます。Raises the ProgressChanged event.

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)

パラメーター

e
ProgressChangedEventArgs ProgressChangedEventArgs ProgressChangedEventArgs ProgressChangedEventArgs

イベント データを格納している EventArgsAn EventArgs that contains the event data.

次のコード例は、の使用を示します、OnProgressChangedメソッドを非同期操作の進行状況を報告します。The following code example demonstrates the use of the OnProgressChanged method to report the progress of an asynchronous operation. このコード例が示されている例の一部、AsyncOperationManagerクラス。This code example is part of a larger example provided for the AsyncOperationManager class.

// 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);
    }
}
' 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

注釈

イベントを発生させると、イベント ハンドラーがデリゲートから呼び出されます。Raising an event invokes the event handler through a delegate. 詳細については、次を参照してください。処理とイベントの発生します。For more information, see Handling and Raising Events.

OnProgressChanged メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理することもできます。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.

注意 (継承者)

派生クラスで OnProgressChanged(ProgressChangedEventArgs) をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnProgressChanged(ProgressChangedEventArgs) メソッドを呼び出してください。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.

適用対象

こちらもご覧ください