AsyncOperation.UserSuppliedState Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.