Поделиться через


AsyncOperation.UserSuppliedState Свойство

Определение

Возвращает или задает объект, используемый для уникальной идентификации асинхронной операции.

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

Значение свойства

Объект состояния, переданный в вызов асинхронного метода.

Примеры

В следующем примере кода показано использование UserSuppliedState для отслеживания времени существования асинхронных операций. Этот пример входит в состав более крупного примера использования класса System.ComponentModel.AsyncOperationManager.

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

Комментарии

Если класс поддерживает несколько асинхронных методов или несколько вызовов одного асинхронного метода, клиентам потребуется способ определить, какая асинхронная задача вызывает события. Метод MethodNameAsync должен принимать параметр типа Object , который будет выступать в качестве идентификатора задачи. Этот идентификатор задачи будет использоваться при вызове AsyncOperationManager.CreateOperationметода , который связывает идентификатор задачи клиента с определенным вызовом асинхронной операции. Этот идентификатор задачи становится доступным для реализации через UserSuppliedState свойство .

Внимание!

Клиентский код должен быть осторожным, чтобы предоставить уникальное UserSuppliedState значение для свойства . Неуникальный идентификатор задач может привести к неправильному отчету о ходе выполнения и других событиях. Код должен проверка для неуникальный идентификатор задачи и вызывать , ArgumentException если он обнаружен.

Применяется к

См. также раздел