Freigeben über


AsyncOperation.UserSuppliedState Eigenschaft

Definition

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.

Gilt für:

Weitere Informationen