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