AsyncOperation.UserSuppliedState Propiedad

Definición

Obtiene o establece un objeto que se usa para identificar de forma única una operación asincrónica.Gets or sets an object used to uniquely identify an asynchronous operation.

public:
 property System::Object ^ UserSuppliedState { System::Object ^ get(); };
public object UserSuppliedState { get; }
member this.UserSuppliedState : obj
Public ReadOnly Property UserSuppliedState As Object

Valor de propiedad

Objeto de estado que se pasó a la invocación al método asincrónico.The state object passed to the asynchronous method invocation.

Ejemplos

En el ejemplo de código siguiente se muestra cómo utilizar UserSuppliedState para realizar un seguimiento de la duración de las operaciones asincrónicas.The following code example demonstrates using UserSuppliedState to track the lifetime of asynchronous operations. Este ejemplo de código forma parte de un ejemplo más extenso proporcionado para la clase System.ComponentModel.AsyncOperationManager.This code example is part of a larger example provided for the System.ComponentModel.AsyncOperationManager class.

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

Comentarios

Si la clase admite varios métodos asincrónicos o varias invocaciones de un solo método asincrónico, los clientes necesitarán una manera de determinar qué tarea asincrónica está generando eventos.If your class supports multiple asynchronous methods or multiple invocations of a single asynchronous method, clients will need a way to determine which asynchronous task is raising events. El método de MethodNameAsync debe tomar un parámetro de tipo Object que actúe como identificador de tarea.Your MethodNameAsync method should take a parameter of type Object that will act as a task ID. Usará este identificador de tarea al llamar al método AsyncOperationManager.CreateOperation, y se asociará el identificador de tarea del cliente con una invocación determinada de la operación asincrónica.You will use this task ID when you call the AsyncOperationManager.CreateOperation, method and this will associate the client's task ID with a particular invocation of your asynchronous operation. Este identificador de tarea se pone a disposición de la implementación a través de la propiedad UserSuppliedState.This task ID is made available to your implementation through the UserSuppliedState property.

Precaución

El código de cliente debe tener cuidado de proporcionar un valor único para la propiedad UserSuppliedState.Client code must be careful to provide a unique value for the UserSuppliedState property. Los identificadores de tarea no únicos pueden hacer que la implementación Informe sobre el progreso y otros eventos de forma incorrecta.Non-unique task IDs may cause your implementation to report progress and other events incorrectly. El código debe comprobar un identificador de tarea no único y generar un ArgumentException si se detecta uno.Your code should check for a non-unique task ID and raise an ArgumentException if one is detected.

Se aplica a

Consulte también: