Condividi tramite


AsyncOperation.UserSuppliedState Proprietà

Definizione

Ottiene o imposta un oggetto usato per identificare in modo univoco un'operazione asincrona.

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

Valore della proprietà

Oggetto di stato passato alla chiamata di metodo asincrona.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso UserSuppliedState di per tenere traccia della durata delle operazioni asincrone. Questo esempio di codice fa parte di un esempio più ampio fornito per la System.ComponentModel.AsyncOperationManager classe .

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

Commenti

Se la classe supporta più metodi asincroni o più chiamate di un singolo metodo asincrono, i client dovranno determinare quale attività asincrona sta generando eventi. Il MethodNameAsync metodo deve accettare un parametro di tipo Object che fungerà da ID attività. Questo ID attività verrà usato quando si chiama il AsyncOperationManager.CreateOperationmetodo , che associa l'ID attività del client a una determinata chiamata dell'operazione asincrona. Questo ID attività viene reso disponibile per l'implementazione tramite la UserSuppliedState proprietà .

Attenzione

Il codice client deve prestare attenzione a fornire un valore univoco per la UserSuppliedState proprietà . Gli ID attività non univoci possono causare la segnalazione non corretta dello stato di avanzamento dell'implementazione e di altri eventi. Il codice deve verificare la presenza di un ID attività non univoco e generare un ArgumentException valore se ne viene rilevato uno.

Si applica a

Vedi anche