AsyncOperation.UserSuppliedState Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.