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 jednoznač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í 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 uvedeného pro třídu System.ComponentModel.AsyncOperationManager.
// 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
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í úkol vyvolává události. Vaše MethodNameAsync metoda by měla mít parametr typu Object , který bude fungovat jako ID úkolu. Toto ID úlohy použijete při volání AsyncOperationManager.CreateOperationmetody , a tím přidružíte ID úlohy klienta k určitému vyvolání asynchronní operace. Toto ID úlohy je zpřístupněno vaší implementaci prostřednictvím UserSuppliedState vlastnosti.
Upozornění
Klientský kód musí být opatrný, aby poskytoval jedinečnou hodnotu vlastnosti UserSuppliedState . Id ne jedinečných úkolů můžou způsobit, že vaše implementace hlásí 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 se zjistí.
Platí pro
Viz také
- AsyncOperationManager
- Osvědčené postupy spravovaných vláken
- Přehled asynchronního vzoru založeného na událostech