Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase Task(Of TResult)

 

Publicado: octubre de 2016

Representa una operación asincrónica que puede devolver un valor.

Espacio de nombres:   System.Threading.Tasks
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Threading.Tasks.Task
    System.Threading.Tasks.Task(Of TResult)

<HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization := True,
	ExternalThreading := True)>
Public Class Task(Of TResult)
	Inherits Task

Parámetros de tipo

TResult

El tipo del resultado generado por esta Task<'TResult>.

NombreDescripción
System_CAPS_pubmethodTask(Of TResult)(Func(Of TResult))

Inicializa una nueva Task<'TResult> con la función especificada.

System_CAPS_pubmethodTask(Of TResult)(Func(Of TResult), CancellationToken)

Inicializa una nueva Task<'TResult> con la función especificada.

System_CAPS_pubmethodTask(Of TResult)(Func(Of TResult), CancellationToken, TaskCreationOptions)

Inicializa una nueva Task<'TResult> con la función y opciones de creación especificadas.

System_CAPS_pubmethodTask(Of TResult)(Func(Of TResult), TaskCreationOptions)

Inicializa una nueva Task<'TResult> con la función y opciones de creación especificadas.

System_CAPS_pubmethodTask(Of TResult)(Func(Of Object, TResult), Object)

Inicializa una nueva Task<'TResult> con la función y estado especificados.

System_CAPS_pubmethodTask(Of TResult)(Func(Of Object, TResult), Object, CancellationToken)

Inicializa un nuevo objeto Task<'TResult> con la acción, el estado y las opciones especificados.

System_CAPS_pubmethodTask(Of TResult)(Func(Of Object, TResult), Object, CancellationToken, TaskCreationOptions)

Inicializa un nuevo objeto Task<'TResult> con la acción, el estado y las opciones especificados.

System_CAPS_pubmethodTask(Of TResult)(Func(Of Object, TResult), Object, TaskCreationOptions)

Inicializa un nuevo objeto Task<'TResult> con la acción, el estado y las opciones especificados.

NombreDescripción
System_CAPS_pubpropertyAsyncState

Obtiene el objeto de estado que se proporcionó al crearse el objeto Task, o null si no se proporcionó ningún objeto de estado.(Heredado de Task).

System_CAPS_pubpropertyCreationOptions

Obtiene el objeto TaskCreationOptions usado para crear esta tarea.(Heredado de Task).

System_CAPS_pubpropertyException

Obtiene la excepción AggregateException que causó la finalización prematura del objeto Task. Si Task se completó correctamente o no ha iniciado ninguna excepción, el valor devuelto será null.(Heredado de Task).

System_CAPS_pubpropertySystem_CAPS_staticFactory

Proporciona acceso a patrones de diseño para crear y configurar instancias de Task<'TResult>.

System_CAPS_pubpropertyId

Obtiene un identificador para esta instancia de Task.(Heredado de Task).

System_CAPS_pubpropertyIsCanceled

Obtiene un valor que indica si esta instancia de Task ha completado su ejecución debido a una cancelación.(Heredado de Task).

System_CAPS_pubpropertyIsCompleted

Obtiene un valor que indica si se ha completado esta instancia de Task.(Heredado de Task).

System_CAPS_pubpropertyIsFaulted

Obtiene un valor que indica si el objeto Task se ha completado debido a una excepción no controlada.(Heredado de Task).

System_CAPS_pubpropertyResult

Obtiene el valor de resultado de esta Task<'TResult>.

System_CAPS_pubpropertyStatus

Obtiene el objeto TaskStatus de esta tarea.(Heredado de Task).

NombreDescripción
System_CAPS_pubmethodConfigureAwait(Boolean)

Configura un awaiter utilizado para esperar a este objeto Task<'TResult>.

System_CAPS_pubmethodContinueWith(Action(Of Task, Object), Object)

Crea una continuación que recibe información de estado proporcionada por el autor de la llamada y se ejecuta cuando el elemento Task de destino se completa.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task, Object), Object, CancellationToken)

Crea una continuación que recibe información de estado proporcionada por el autor de la llamada y un token de cancelación y que se ejecuta de forma asincrónica cuando el elemento Task de destino se completa.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task, Object), Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que recibe información de estado proporcionada por el autor de la llamada y un token de cancelación y que se ejecuta cuando el elemento Task de destino se completa. La continuación se ejecuta según un conjunto de condiciones especificadas y usa un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task, Object), Object, TaskContinuationOptions)

Crea una continuación que recibe información de estado proporcionada por el autor de la llamada y se ejecuta cuando el elemento Task de destino se completa. La continuación se ejecuta según un conjunto de condiciones especificadas.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task, Object), Object, TaskScheduler)

Crea una continuación que recibe información de estado proporcionada por el autor de la llamada y se ejecuta de forma asincrónica cuando el elemento Task de destino se completa. La continuación usa un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult), Object), Object)

Crea una continuación a la que se pasa información de estado y que se ejecuta cuando el objeto Task<'TResult> de destino se completa.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult), Object), Object, CancellationToken)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult), Object), Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult), Object), Object, TaskContinuationOptions)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult), Object), Object, TaskScheduler)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult)))

Crea una continuación que se ejecuta de manera asincrónica cuando se completa la tarea de destino.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult)), CancellationToken)

Crea una continuación cancelable que se ejecuta de manera asincrónica cuando se completa el Task<'TResult> objetivo.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult)), CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta según la condición especificada en continuationOptions.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult)), TaskContinuationOptions)

Crea una continuación que se ejecuta según la condición especificada en continuationOptions.

System_CAPS_pubmethodContinueWith(Action(Of Task(Of TResult)), TaskScheduler)

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Action(Of Task))

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task de destino.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task), CancellationToken)

Crea una continuación que recibe un token de cancelación y se ejecuta de forma asincrónica cuando el elemento Task de destino se completa.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task), CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta cuando se completa la tarea de destino según el elemento TaskContinuationOptions especificado. La continuación recibe un token de cancelación y usa un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task), TaskContinuationOptions)

Crea una continuación que se ejecuta cuando se completa la tarea de destino según el elemento TaskContinuationOptions especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Action(Of Task), TaskScheduler)

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task de destino. La continuación usa un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, TResult))

Crea una continuación que se ejecuta de forma asincrónica cuando el elemento Task<'TResult> de destino se completa y devuelve un valor.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, TResult), CancellationToken)

Crea una continuación que se ejecuta de forma asincrónica cuando el elemento Task de destino se completa y devuelve un valor. La continuación recibe un token de cancelación.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, TResult), CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta según las opciones de continuación especificadas y devuelve un valor. Se pasa un token de cancelación a la continuación y usa un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, TResult), TaskContinuationOptions)

Crea una continuación que se ejecuta según las opciones de continuación especificadas y devuelve un valor.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, TResult), TaskScheduler)

Crea una continuación que se ejecuta de forma asincrónica cuando el elemento Task de destino se completa y devuelve un valor. La continuación usa un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, Object, TResult), Object)

Crea una continuación que recibe información de estado proporcionada por el autor de la llamada y se ejecuta de forma asincrónica cuando el elemento Task de destino se completa y devuelve un valor.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, Object, TResult), Object, CancellationToken)

Crea una continuación que se ejecuta de forma asincrónica cuando el elemento Task de destino se completa y devuelve un valor. La continuación recibe información de estado proporcionada por el autor de la llamada y un token de cancelación.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, Object, TResult), Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta según las opciones de continuación de la tarea especificadas cuando el elemento Task de destino se completa y devuelve un valor. La continuación recibe información de estado proporcionada por el autor de la llamada y un token de cancelación y usa el programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, Object, TResult), Object, TaskContinuationOptions)

Crea una continuación que se ejecuta según las opciones de continuación de la tarea especificadas cuando el elemento Task de destino se completa. La continuación recibe información de estado proporcionada por el autor de la llamada.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TResult)(Func(Of Task, Object, TResult), Object, TaskScheduler)

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task de destino. La continuación recibe información de estado proporcionada por el autor de la llamada y usa a un programador especificado.(Heredado de Task).

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), TNewResult))

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), TNewResult), CancellationToken)

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), TNewResult), CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta según la condición especificada en continuationOptions.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), TNewResult), TaskContinuationOptions)

Crea una continuación que se ejecuta según la condición especificada en continuationOptions.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), TNewResult), TaskScheduler)

Crea una continuación que se ejecuta de manera asincrónica cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), Object, TNewResult), Object)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), Object, TNewResult), Object, CancellationToken)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), Object, TNewResult), Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), Object, TNewResult), Object, TaskContinuationOptions)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodContinueWith(Of TNewResult)(Func(Of Task(Of TResult), Object, TNewResult), Object, TaskScheduler)

Crea una continuación que se ejecuta cuando se completa el objeto Task<'TResult> de destino.

System_CAPS_pubmethodDispose()

Libera todos los recursos usados por la instancia actual de la clase Task.(Heredado de Task).

System_CAPS_protmethodDispose(Boolean)

Desecha el objeto Task y libera todos sus recursos no administrados.(Heredado de Task).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodGetAwaiter()

Obtiene un awaiter utilizado para esperar a este objeto Task<'TResult>.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodRunSynchronously()

Ejecuta sincrónicamente el objeto Task en el objeto TaskScheduler actual.(Heredado de Task).

System_CAPS_pubmethodRunSynchronously(TaskScheduler)

Ejecuta sincrónicamente el objeto Task en el objeto TaskScheduler proporcionado.(Heredado de Task).

System_CAPS_pubmethodStart()

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler actual.(Heredado de Task).

System_CAPS_pubmethodStart(TaskScheduler)

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler especificado.(Heredado de Task).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodWait()

Espera a que se complete la ejecución del objeto Task.(Heredado de Task).

System_CAPS_pubmethodWait(CancellationToken)

Espera a que se complete la ejecución del objeto Task. La espera finalizará si un token de cancelación se cancela antes de que finalice la tarea.(Heredado de Task).

System_CAPS_pubmethodWait(Int32)

Espera a que el objeto Task complete la ejecución dentro de un número especificado de milisegundos.(Heredado de Task).

System_CAPS_pubmethodWait(Int32, CancellationToken)

Espera a que se complete la ejecución del objeto Task. La espera finalizará si transcurre un intervalo de tiempo de espera o un token de cancelación se cancela antes de que finalice la tarea.(Heredado de Task).

System_CAPS_pubmethodWait(TimeSpan)

Espera a que Task complete la ejecución dentro de un intervalo de tiempo especificado.(Heredado de Task).

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privpropertyIAsyncResult.AsyncWaitHandle

Obtiene un identificador WaitHandle que se puede usar para esperar a que se complete la tarea.(Heredado de Task).

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIAsyncResult.CompletedSynchronously

Obtiene un valor que indica si la operación se ha completado sincrónicamente.(Heredado de Task).

NombreDescripción
System_CAPS_pubmethodDispatcherOperationWait()

Sobrecargado. Espera indefinidamente subyacente DispatcherOperation para completar.(Definido por TaskExtensions).

System_CAPS_pubmethodDispatcherOperationWait(TimeSpan)

Sobrecargado. Espera a que la cantidad especificada de tiempo subyacente DispatcherOperation para completar.(Definido por TaskExtensions).

System_CAPS_pubmethodIsDispatcherOperationTask()

Devuelve un valor que indica si este Task está asociado con un DispatcherOperation.(Definido por TaskExtensions).

La Task<'TResult> clase representa una única operación que devuelve un valor y que normalmente se ejecuta de forma asincrónica. Task<'TResult> los objetos son uno de los componentes centrales del primer introducidas en .NET Framework 4. Dado que el trabajo realizado por un Task<'TResult> objeto normalmente ejecuta de forma asincrónica en un subproceso ThreadPool en lugar de forma sincrónica en el subproceso principal de la aplicación, puede utilizar el Status propiedad, así como el IsCanceled, IsCompleted, y IsFaulted Propiedades para determinar el estado de una tarea. Normalmente, se utiliza una expresión lambda para especificar el trabajo que debe realizar la tarea.

Task<'TResult> pueden crear instancias en una variedad de formas. El enfoque más común, que está disponible a partir de la .NET Framework 4.5, es llamar a estático Task.Run(Of TResult)(Func(Of TResult)) o Task.Run(Of TResult)(Func(Of TResult), CancellationToken) (método). Estos métodos proporcionan una manera sencilla de iniciar una tarea mediante valores predeterminados y sin adquirir parámetros adicionales. En el ejemplo siguiente se usa el Task.Run(Of TResult)(Func(Of TResult)) método para iniciar una tarea que se repite y, a continuación, muestra el número de iteraciones del bucle:

Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim t As Task(Of Integer) = Task.Run(Function()
                                  Dim max As Integer = 1000000
                                  Dim ctr As Integer
                                  For ctr = 0 to max
                                     If ctr = max \ 2 And Date.Now.Hour <= 12 Then
                                        ctr += 1
                                        Exit For
                                     End If
                                  Next
                                  Return ctr
                               End Function)
      Console.WriteLine("Finished {0:N0} iterations.", t.Result)
   End Sub
End Module
' The example displays the following output:
'       Finished 1,000,001 loop iterations

Una alternativa y la manera más común para iniciar una tarea el .NET Framework 4, es llamar a estático TaskFactory.StartNew o TaskFactory(Of TResult).StartNew (método). El Task.Factory devuelve un TaskFactory objeto y el Task(Of TResult).Factory propiedad devuelve un TaskFactory(Of TResult) objeto. Las sobrecargas de sus StartNew método permite pasar argumentos, definir las opciones de creación de tareas y especificar un programador de tareas. En el ejemplo siguiente se usa el TaskFactory(Of TResult).StartNew(Func(Of TResult)) método para iniciar una tarea. Es funcionalmente equivalente al código en el ejemplo anterior.

Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim t = Task(Of Integer).Factory.StartNew(Function()
                                  Dim max As Integer = 1000000
                                  Dim ctr As Integer
                                  For ctr = 0 to max
                                     If ctr = max \ 2 And Date.Now.Hour <= 12 Then
                                       ctr += 1
                                       Exit For
                                     End If
                                  Next
                                  Return ctr
                               End Function)
      Console.WriteLine("Finished {0:N0} iterations.", t.Result)
   End Sub
End Module
' The example displays output like the following:
'       Finished 1,000,001 iterations

Para obtener ejemplos más completos, vea Task Parallelism (Task Parallel Library).

La Task<'TResult> clase también proporciona constructores que inicializan la tarea pero que no la programan para su ejecución. Por motivos de rendimiento, la Task.Run y StartNew métodos son el mecanismo preferido para crear y programar tareas computacionales, pero para escenarios donde la creación de tareas y la programación deben estar separados, se pueden usar los constructores y la tarea Start método puede utilizarse para programar la tarea para su ejecución en un momento posterior.

A partir de aplicaciones de escritorio que tienen como destino el .NET Framework 4.6, la referencia cultural del subproceso que crea e invoca una tarea se convierte en parte del contexto del subproceso. Es decir, sin tener en cuenta la referencia cultural actual del subproceso en el que se ejecuta la tarea, la referencia cultural actual de la tarea de la referencia cultural del subproceso que realiza la llamada. Para las aplicaciones destinadas a versiones de .NET Framework anteriores a la .NET Framework 4.6, la referencia cultural de la tarea es la referencia cultural del subproceso en el que se ejecuta la tarea. Para obtener más información, consulte la sección "Referencia cultural y operaciones asincrónicas basadas en tareas" en el CultureInfo tema. Tenga en cuenta que las aplicaciones de la tienda sigan el tiempo de ejecución de Windows en establecer y obtener la referencia cultural predeterminada.

Para las operaciones que no devuelven un valor, utilice la Task clase.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 5.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1

Todos los miembros de Task<'TResult>, excepto Dispose, es seguro para subprocesos y se pueden usar desde varios subprocesos simultáneamente.

Volver al principio
Mostrar: