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.
Dient zum Abrufen oder Festlegen eines Objekts, das zum eindeutigen Identifizieren eines asynchronen Vorgangs verwendet wird.
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 wird.
Beispiele
Im folgenden Codebeispiel wird die Verwendung UserSuppliedState zum Nachverfolgen der Lebensdauer asynchroner Vorgänge veranschaulicht. 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)
{
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
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, und dadurch wird die Aufgaben-ID des Clients einem bestimmten Aufruf Des asynchronen Vorgangs zugeordnet. Diese Aufgaben-ID wird ihrer Implementierung über die UserSuppliedState Eigenschaft zur Verfügung gestellt.
Vorsicht
Clientcode muss darauf achten, 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 einen ArgumentException auslösen, wenn eine erkannt wird.