AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
비동기 작업의 수명을 끝냅니다.
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)
매개 변수
작업이 끝날 때 호출될 대리자를 래핑하는 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 미해결 비동기 작업의 수를 줄입니다. 또한 작업이 완료되었으므로 후속 호출이 실패할 수 있도록 작업을 상태로 전환해야 합니다.
비동기 클래스 구현에 대한 자세한 내용은 이벤트 기반 비동기 패턴 구현을 참조하세요.
적용 대상
추가 정보
.NET