AsyncOperation.UserSuppliedState Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.