AsyncOperation.UserSuppliedState 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
비동기 작업을 고유하게 식별하는 데 사용되는 개체를 가져오거나 설정합니다.
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 발생시켜야 합니다.
적용 대상
추가 정보
.NET