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ğinde, zaman uyumsuz işlemlerin yaşam ömrünü izlemek için kullanımı UserSuppliedState gösterilmektedir. 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)
{
if (userStateToLifetime[taskId] is AsyncOperation)
{
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ı belirlemek için bir yönteme ihtiyacı vardı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 benzersiz bir değer sağlamak için UserSuppliedState dikkatli olmalıdır. 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.