AsyncOperation.UserSuppliedState Egenskap

Definition

Hämtar eller anger ett objekt som används för att unikt identifiera en asynkron åtgärd.

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

Egenskapsvärde

Tillståndsobjektet som skickas till den asynkrona metodens anrop.

Exempel

Följande kodexempel visar hur du använder UserSuppliedState för att spåra livslängden för asynkrona åtgärder. Det här kodexemplet är en del av ett större exempel för System.ComponentModel.AsyncOperationManager klassen.

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

Kommentarer

Om klassen stöder flera asynkrona metoder eller flera anrop av en enda asynkron metod, behöver klienterna ett sätt att avgöra vilken asynkron uppgift som genererar händelser. Din MethodNameAsync metod bör ha en parameter av typen Object som fungerar som ett aktivitets-ID. Du använder det här aktivitets-ID:t när du anropar AsyncOperationManager.CreateOperationmetoden , och detta associerar klientens aktivitets-ID med en viss anrop av din asynkrona åtgärd. Det här aktivitets-ID:t görs tillgängligt för implementeringen via UserSuppliedState egenskapen .

Caution

Klientkoden måste vara noga med att ange ett unikt värde för UserSuppliedState egenskapen. Icke-unika aktivitets-ID:er kan göra att implementeringen rapporterar förlopp och andra händelser felaktigt. Koden bör söka efter ett icke-unikt aktivitets-ID och generera ett ArgumentException om ett identifieras.

Gäller för

Se även