Sdílet prostřednictvím


AsyncOperation.UserSuppliedState Vlastnost

Definice

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é