다음을 통해 공유


AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) 메서드

정의

비동기 작업의 수명을 끝냅니다.

public:
 void PostOperationCompleted(System::Threading::SendOrPostCallback ^ d, System::Object ^ arg);
public void PostOperationCompleted (System.Threading.SendOrPostCallback d, object arg);
public void PostOperationCompleted (System.Threading.SendOrPostCallback d, object? arg);
member this.PostOperationCompleted : System.Threading.SendOrPostCallback * obj -> unit
Public Sub PostOperationCompleted (d As SendOrPostCallback, arg As Object)

매개 변수

d
SendOrPostCallback

작업이 끝날 때 호출될 대리자를 래핑하는 SendOrPostCallback 개체입니다.

arg
Object

d 매개 변수에 포함된 대리자에 대한 인수입니다.

예외

OperationCompleted()가 이 작업에 대해 이미 호출된 경우

d이(가) null인 경우

예제

다음 코드 예제에서는 메서드를 PostOperationCompleted 사용하여 비동기 작업의 수명을 종료하는 방법을 보여 줍니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 System.ComponentModel.AsyncOperationManager 클래스입니다.

// This method cancels a pending asynchronous operation.
public void CancelAsync(object taskId)
{
    AsyncOperation asyncOp = userStateToLifetime[taskId] as AsyncOperation;
    if (asyncOp != null)
    {   
        lock (userStateToLifetime.SyncRoot)
        {
            userStateToLifetime.Remove(taskId);
        }
    }
}
' This method cancels a pending asynchronous operation.
Public Sub CancelAsync(ByVal taskId As Object)

    Dim obj As Object = userStateToLifetime(taskId)
    If (obj IsNot Nothing) Then

        SyncLock userStateToLifetime.SyncRoot

            userStateToLifetime.Remove(taskId)

        End SyncLock

    End If

End Sub

설명

메서드를 PostOperationCompleted 호출하여 비동기 작업의 수명을 종료합니다. 이 메서드가 특정 작업에 대해 호출되면 해당 AsyncOperation 개체를 호출하면 예외가 발생합니다.

매개 변수는 d 작업의 완료, 취소 또는 실패로 인해 작업의 수명이 종료될 때 클래스에서 호출할 대리자를 래핑합니다. AsyncOperation 개체는 스레드 또는 컨텍스트에서 애플리케이션 모델에 대 한 적절 한 대리자가 호출 됨을 확인 합니다. 대리자는 필요에 따라 비동기 작업의 수명이 종료되었음을 클라이언트에 알립니다.

매개 변수는 arg 완료 대리 d자 에 상태 정보를 전달하는 데 사용됩니다. 개체 또는 개체를 AsyncOperationSystem.ComponentModel.AsyncCompletedEventArgs 매개 변수 값으로 사용할 수 있습니다. 또는 상태 스토리지를 추가로 제공하려는 경우 System.ComponentModel.AsyncCompletedEventArgs 클래스에서 파생된 클래스의 인스턴스를 사용할 수 있습니다.

상속자 참고

상속자는 PostOperationCompleted(SendOrPostCallback, Object) 클래스 라이브러리 공급자 잠재적인 스택과 기울이지 않아도 되도록 비동기 호출 오버플로 비동기 가정 했지만 특정 애플리케이션 모델을 동기로 발생 합니다. 메서드 구현을 애플리케이션 모델에 대 한 적절 한 작업을 수행 해야 합니다. 즉, "수명 종료" 호출으로 해석 됩니다. instance 경우 ASP.NET 미해결 비동기 작업의 수를 줄입니다. 또한 작업이 완료되었으므로 후속 호출이 실패할 수 있도록 작업을 상태로 전환해야 합니다.

비동기 클래스 구현에 대한 자세한 내용은 이벤트 기반 비동기 패턴 구현을 참조하세요.

적용 대상

추가 정보