AsyncOperation.UserSuppliedState Tulajdonság

Definíció

Lekéri vagy beállítja az aszinkron művelet egyedi azonosítására használt objektumot.

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

Tulajdonság értéke

Az aszinkron metódushívásnak átadott állapotobjektum.

Példák

Az alábbi példakód bemutatja UserSuppliedState az aszinkron műveletek élettartamának nyomon követését. Ez a példakód egy nagyobb, az System.ComponentModel.AsyncOperationManager osztályhoz tartozó példa része.

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

Megjegyzések

Ha az osztály több aszinkron metódust vagy egy aszinkron metódus több meghívását is támogatja, az ügyfeleknek módot kell adni annak meghatározására, hogy melyik aszinkron feladat emeli ki az eseményeket. A MethodNameAsync metódusnak olyan típusú Object paramétert kell használnia, amely feladatazonosítóként fog működni. Ezt a tevékenységazonosítót fogja használni, amikor meghívja a AsyncOperationManager.CreateOperation, metódust, és ez társítja az ügyfél tevékenységazonosítóját az aszinkron művelet adott meghívásához. Ez a feladatazonosító a tulajdonságon keresztül elérhetővé válik a megvalósításhoz UserSuppliedState .

Figyelmeztetés

Az ügyfélkódnak körültekintőnek kell lennie, hogy egyedi értéket adjon a UserSuppliedState tulajdonságnak. A nem egyedi feladatazonosítók miatt előfordulhat, hogy a megvalósítás helytelenül jelenti az előrehaladást és más eseményeket. A kódnak nem egyedi tevékenységazonosítót kell keresnie, és fel kell emelnie az ArgumentException észlelést.

A következőre érvényes:

Lásd még