AsyncOperation.UserSuppliedState Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja az aszinkron művelet egyedi azonosítására használt objektumot.
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
Tulajdonság értéke
Az aszinkron metódushívásnak átadott állapotobjektum.
Példák
Az alábbi példakód bemutatja UserSuppliedState az aszinkron műveletek élettartamának nyomon követését. Ez a példakód egy nagyobb, az System.ComponentModel.AsyncOperationManager osztályhoz tartozó példa része.
// 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
Megjegyzések
Ha az osztály több aszinkron metódust vagy egy aszinkron metódus több meghívását is támogatja, az ügyfeleknek módot kell adni annak meghatározására, hogy melyik aszinkron feladat emeli ki az eseményeket. A MethodNameAsync metódusnak olyan típusú Object paramétert kell használnia, amely feladatazonosítóként fog működni. Ezt a tevékenységazonosítót fogja használni, amikor meghívja a AsyncOperationManager.CreateOperation, metódust, és ez társítja az ügyfél tevékenységazonosítóját az aszinkron művelet adott meghívásához. Ez a feladatazonosító a tulajdonságon keresztül elérhetővé válik a megvalósításhoz UserSuppliedState .
Figyelmeztetés
Az ügyfélkódnak körültekintőnek kell lennie, hogy egyedi értéket adjon a UserSuppliedState tulajdonságnak. A nem egyedi feladatazonosítók miatt előfordulhat, hogy a megvalósítás helytelenül jelenti az előrehaladást és más eseményeket. A kódnak nem egyedi tevékenységazonosítót kell keresnie, és fel kell emelnie az ArgumentException észlelést.