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 , если он обнаружен.