AsyncOperation.UserSuppliedState Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft ein Objekt ab, das für die eindeutige Identifikation eines asynchronen Vorgangs verwendet wird, oder legt dieses fest.
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
Eigenschaftswert
Das Zustandsobjekt, das an den asynchronen Methodenaufruf übergeben wurde.
Beispiele
Das folgende Codebeispiel veranschaulicht die Verwendung UserSuppliedState , um die Lebensdauer asynchroner Vorgänge nachzuverfolgen. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die System.ComponentModel.AsyncOperationManager-Klasse bereitgestellt wird.
// 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
Hinweise
Wenn Ihre Klasse mehrere asynchrone Methoden oder mehrere Aufrufe einer einzelnen asynchronen Methode unterstützt, benötigen Clients eine Möglichkeit, zu bestimmen, welche asynchrone Aufgabe Ereignisse auslöst. Ihre MethodNameAsync
Methode sollte einen Parameter vom Typ Object verwenden, der als Aufgaben-ID fungiert. Sie verwenden diese Aufgaben-ID, wenn Sie die AsyncOperationManager.CreateOperationMethode aufrufen. Dadurch wird die Aufgaben-ID des Clients einem bestimmten Aufruf Ihres asynchronen Vorgangs zugeordnet. Diese Aufgaben-ID wird Ihrer Implementierung über die UserSuppliedState -Eigenschaft zur Verfügung gestellt.
Achtung
Clientcode muss sorgfältig sein, um einen eindeutigen Wert für die UserSuppliedState Eigenschaft bereitzustellen. Nicht eindeutige Aufgaben-IDs können dazu führen, dass Ihre Implementierung den Fortschritt und andere Ereignisse falsch meldet. Ihr Code sollte nach einer nicht eindeutigen Aufgaben-ID suchen und eine ArgumentException auslösen, wenn sie erkannt wird.