Condividi tramite


AsyncOperation.UserSuppliedState Proprietà

Definizione

Ottiene o imposta un oggetto utilizzato 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 al metodo asincrono.

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)
{
    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

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 particolare 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 l'implementazione di segnalare lo stato di avanzamento e altri eventi in modo errato. Il codice deve verificare la presenza di un ID attività non univoco e generare un'eccezione ArgumentException se ne viene rilevata una.

Si applica a

Vedi anche