이 설명서는 보관되지만 유지 되지 않습니다.

AsyncCompletedEventArgs 클래스

참고: 이 클래스는 .NET Framework 버전 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라고 하는 해당 토큰을 추적해야 합니다.

Note참고

이 클래스에 적용되는 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에서 지원
표시: