Aracılığıyla paylaş


AsyncOperation.UserSuppliedState Özellik

Tanım

Zaman uyumsuz bir işlemi benzersiz olarak tanımlamak için kullanılan bir nesneyi alır veya ayarlar.

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

Özellik Değeri

Zaman uyumsuz yöntem çağrısına geçirilen durum nesnesi.

Örnekler

Aşağıdaki kod örneği, zaman uyumsuz işlemlerin ömrünü izlemek için kullanımını UserSuppliedState gösterir. Bu kod örneği, sınıfı için System.ComponentModel.AsyncOperationManager sağlanan daha büyük bir örneğin parçasıdır.

// 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

Açıklamalar

Sınıfınız birden çok zaman uyumsuz yöntemi veya tek bir zaman uyumsuz yöntemin birden çok çağrısını destekliyorsa, istemcilerin olayları hangi zaman uyumsuz görevin oluşturacağını saptamak için bir yönteme ihtiyacı olacaktır. Yönteminiz MethodNameAsync , görev kimliği olarak davranacak türde Object bir parametre almalıdır. , yöntemini çağırdığınızda AsyncOperationManager.CreateOperationbu görev kimliğini kullanırsınız ve bu, istemcinin görev kimliğini zaman uyumsuz işleminizin belirli bir çağrısıyla ilişkilendirir. Bu görev kimliği, özelliği aracılığıyla uygulamanız için kullanılabilir hale getirilir UserSuppliedState .

Dikkat

İstemci kodu, özelliği için UserSuppliedState benzersiz bir değer sağlamaya dikkat etmelidir. Benzersiz olmayan görev kimlikleri uygulamanızın ilerleme durumunu ve diğer olayları yanlış bildirmesine neden olabilir. Kodunuz benzersiz olmayan bir görev kimliğini denetlemeli ve algılanırsa bir ArgumentException oluşturmalıdır.

Şunlara uygulanır

Ayrıca bkz.