AsyncOperation.UserSuppliedState Właściwość

Definicja

Pobiera lub ustawia obiekt używany do unikatowego identyfikowania operacji asynchronicznej.

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

Wartość właściwości

Obiekt stanu przekazany do wywołania metody asynchronicznej.

Przykłady

Poniższy przykład kodu przedstawia użycie funkcji UserSuppliedState do śledzenia okresu istnienia operacji asynchronicznych. Ten przykład kodu jest częścią większego przykładu podanego System.ComponentModel.AsyncOperationManager dla klasy.

// 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

Uwagi

Jeśli klasa obsługuje wiele metod asynchronicznych lub wiele wywołań pojedynczej metody asynchronicznej, klienci będą musieli określić, które zadanie asynchroniczne zgłasza zdarzenia. Metoda MethodNameAsync powinna przyjmować parametr typu Object , który będzie działać jako identyfikator zadania. Ten identyfikator zadania będzie używany podczas wywoływania AsyncOperationManager.CreateOperationmetody , a spowoduje to skojarzenie identyfikatora zadania klienta z konkretnym wywołaniem operacji asynchronicznej. Ten identyfikator zadania jest udostępniany implementacji za pośrednictwem UserSuppliedState właściwości .

Przestroga

Kod klienta musi być ostrożny, aby podać unikatową wartość właściwości UserSuppliedState . Nie unikatowe identyfikatory zadań mogą spowodować nieprawidłowe raportowanie postępu implementacji i innych zdarzeń. Kod powinien sprawdzić, czy nie jest unikatowy identyfikator zadania, i zgłosić ArgumentException , czy został wykryty.

Dotyczy

Zobacz też