다음을 통해 공유


AsyncOperation.UserSuppliedState 속성

정의

비동기 작업을 고유하게 식별하는 데 사용되는 개체를 가져오거나 설정합니다.

public:
 property System::Object ^ UserSuppliedState { System::Object ^ get(); };
public object UserSuppliedState { get; }
public object? UserSuppliedState { get; }
member this.UserSuppliedState : obj
Public ReadOnly Property UserSuppliedState As Object

속성 값

비동기 메서드 호출에 전달된 상태 개체입니다.

예제

다음 코드 예제에서는 를 사용하여 UserSuppliedState 비동기 작업의 수명을 추적하는 방법을 보여 줍니다. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 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

설명

클래스가 여러 비동기 메서드 또는 단일 비동기 메서드의 여러 호출을 지원하는 경우 클라이언트는 이벤트를 발생시키는 비동기 작업을 확인하는 방법이 필요합니다. MethodNameAsync 메서드는 작업 ID 역할을 하는 형식 Object 의 매개 변수를 사용해야 합니다. , 메서드를 AsyncOperationManager.CreateOperation호출할 때 이 작업 ID를 사용하고 클라이언트의 작업 ID를 비동기 작업의 특정 호출과 연결합니다. 이 작업 ID는 속성을 통해 UserSuppliedState 구현에 사용할 수 있습니다.

주의

클라이언트 코드는 속성에 고유한 UserSuppliedState 값을 제공하도록 주의해야 합니다. 고유하지 않은 작업 ID로 인해 구현에서 진행률 및 기타 이벤트를 잘못 보고할 수 있습니다. 코드는 고유하지 않은 작업 ID에 대해 검사 검색되면 을 ArgumentException 발생시켜야 합니다.

적용 대상

추가 정보