Sdílet prostřednictvím


AsyncOperation.UserSuppliedState Vlastnost

Definice

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.

Platí pro

Viz také