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