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


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)
{
    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

Комментарии

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

Предостережение

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

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

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