エクスポート (0) 印刷
すべて展開

AsyncCompletedEventArgs クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

MethodName Completed イベントのデータを提供します。

名前空間: System.ComponentModel
アセンブリ: System (system.dll 内)

public class AsyncCompletedEventArgs : EventArgs
public class AsyncCompletedEventArgs extends EventArgs
public class AsyncCompletedEventArgs extends EventArgs

イベントベースの非同期パターンの概要 を実装するクラスを使用する場合、そのクラスは MethodNameCompleted イベントを提供します。System.ComponentModel.AsyncCompletedEventHandler デリゲートのインスタンスをイベントに追加すると、対応するイベント ハンドラ メソッドの AsyncCompletedEventArgs パラメータに非同期操作の結果に関する情報を受け取ります。

クライアント アプリケーションのイベント ハンドラ デリゲートは、Cancelled プロパティをチェックして、非同期タスクがキャンセルされたかどうかを確認できます。

クライアント アプリケーションのイベント ハンドラ デリゲートは、Error プロパティをチェックして、非同期タスクの実行中に例外が発生したかどうかを確認できます。

クラスが複数の非同期メソッドまたは同じ非同期メソッドの複数回にわたる呼び出しをサポートしている場合は、UserState プロパティの値をチェックすることによって、どのタスクによって MethodNameCompleted イベントが発生したかを確認できます。コードは、対応する非同期タスクの開始時と完了時に、タスク ID と呼ばれるこれらのトークンを追跡する必要があります。

メモメモ

このクラスに適用される HostProtectionAttribute 属性の Resources プロパティの値は、SharedState です。HostProtectionAttribute は、デスクトップ アプリケーション (一般的には、アイコンをダブルクリック、コマンドを入力、またはブラウザに URL を入力して起動するアプリケーション) には影響しません。詳細については、HostProtectionAttribute クラスのトピックまたは「SQL Server プログラミングとホスト保護属性」を参照してください。

継承時の注意 イベント ベースの非同期パターンに従うクラスは、保留中の非同期操作のステータスについてクライアントに通知を行うイベントを発生させることができます。クラスが MethodNameCompleted イベントを提供する場合は、AsyncCompletedEventArgs を使用して、非同期操作の結果についてクライアントに通知を行うことができます。 非同期操作の結果に関して、AsyncCompletedEventArgs が提供する情報より詳しい情報をクライアントに通知することもできます。この場合は、AsyncCompletedEventArgs クラスから独自のクラスを派生させ、追加のプライベート インスタンス変数と対応する読み取り専用のパブリック プロパティを提供します。操作がキャンセルされた場合やエラーが発生した場合は、プロパティ値を返す前に RaiseExceptionIfNecessary メソッドを呼び出します。

AsyncOperation を使用して非同期操作の有効期間を追跡するコード例を次に示します。このコード例は、System.ComponentModel.AsyncOperationManager クラスのトピックで取り上げているコード例の一部分です。

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;
...        // This event handler updates the ListView control when the
        // PrimeNumberCalculator raises the CalculatePrimeCompleted
        // event. The ListView item is updated with the appropriate
        // outcome of the calculation: Canceled, Error, or result.
        private void primeNumberCalculator1_CalculatePrimeCompleted(
            object sender, 
            CalculatePrimeCompletedEventArgs e)
        {
            Guid taskId = (Guid)e.UserState;

            if (e.Cancelled)
            {   
                string result = "Canceled";

                ListViewItem lvi = UpdateListViewItem(taskId, result);

                if (lvi != null)
                {
                    lvi.BackColor = Color.Pink;
                    lvi.Tag = null;
                }
            }
            else if (e.Error != null)
            {
                string result = "Error";

                ListViewItem lvi = UpdateListViewItem(taskId, result);

                if (lvi != null)
                {
                    lvi.BackColor = Color.Red;
                    lvi.ForeColor = Color.White;
                    lvi.Tag = null;
                }
            }
            else
            {   
                bool result = e.IsPrime;

                ListViewItem lvi = UpdateListViewItem(
                    taskId, 
                    result, 
                    e.FirstDivisor);

                if (lvi != null)
                {
                    lvi.BackColor = Color.LightGray;
                    lvi.Tag = null;
                }
            }
        }

import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
import System.ComponentModel.*;
import System.Data.*;
import System.Drawing.*;
import System.Threading.*;
import System.Windows.Forms.*;

...    private void primeNumberCalculator1_CalculatePrimeCompleted(Object sender,
        CalculatePrimeCompletedEventArgs e)
    {
        Guid guid = (Guid)e.get_UserState();
        if (e.get_Cancelled()) {
            String result = "Cancelled";
            ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                result);
            if (lvi != null) {
                lvi.set_BackColor(Color.get_Pink());
                lvi.set_Tag(null);
            }
        }
        else {
            if (e.get_Error() != null) {
                String result = "Error";
                ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                    result);
                if (lvi != null) {
                    lvi.set_BackColor(Color.get_Red());
                    lvi.set_ForeColor(Color.get_White());
                    lvi.set_Tag(null);
                }
            }
            else {
                boolean result = e.get_IsPrime();
                ListViewItem lvi = UpdateListViewItem((Guid)e.get_UserState(),
                    result, e.get_FirstDivisor());
                if (lvi != null) {
                    lvi.set_BackColor(Color.get_LightGray());
                    lvi.set_Tag(null);
                }
            }
        }
    } //primeNumberCalculator1_CalculatePrimeCompleted

System.Object
   System.EventArgs
    System.ComponentModel.AsyncCompletedEventArgs
       派生クラス

この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

.NET Framework

サポート対象 : 2.0

コミュニティの追加

追加
表示:
© 2015 Microsoft