AsyncOperation.UserSuppliedState Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví objekt použitý k jedinečné identifikaci asynchronní operace.
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
Hodnota vlastnosti
Objekt stavu předaný asynchronnímu vyvolání metody.
Příklady
Následující příklad kódu ukazuje použití UserSuppliedState ke sledování životnosti asynchronních operací. Tento příklad kódu je součástí většího příkladu System.ComponentModel.AsyncOperationManager pro třídu.
// 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
Poznámky
Pokud vaše třída podporuje více asynchronních metod nebo více vyvolání jedné asynchronní metody, klienti budou potřebovat způsob, jak určit, která asynchronní úloha vyvolává události. Vaše MethodNameAsync
metoda by měla mít parametr typu Object , který bude fungovat jako ID úlohy. Toto ID úlohy použijete při volání AsyncOperationManager.CreateOperationmetody , která přidruží ID úlohy klienta ke konkrétnímu vyvolání asynchronní operace. Toto ID úlohy je k dispozici vaší implementaci UserSuppliedState prostřednictvím vlastnosti.
Upozornění
Klientský kód musí být opatrný, aby poskytl jedinečnou hodnotu vlastnosti UserSuppliedState . Ne jedinečné ID úkolů můžou způsobit, že implementace bude hlásit průběh a jiné události nesprávně. Váš kód by měl zkontrolovat id úkolu, které není jedinečné, a vyvolat, ArgumentException pokud je zjištěno.