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 TaskFactory

 

Publicado: octubre de 2016

Proporciona compatibilidad para crear y programar objetos Task.

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

System.Object
  System.Threading.Tasks.TaskFactory

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public class TaskFactory

NombreDescripción
System_CAPS_pubmethodTaskFactory()

Inicializa una instancia de TaskFactory con la configuración predeterminada.

System_CAPS_pubmethodTaskFactory(CancellationToken)

Inicializa una instancia de TaskFactory con la configuración especificada.

System_CAPS_pubmethodTaskFactory(CancellationToken, TaskCreationOptions, TaskContinuationOptions, TaskScheduler)

Inicializa una instancia de TaskFactory con la configuración especificada.

System_CAPS_pubmethodTaskFactory(TaskCreationOptions, TaskContinuationOptions)

Inicializa una instancia de TaskFactory con la configuración especificada.

System_CAPS_pubmethodTaskFactory(TaskScheduler)

Inicializa una instancia de TaskFactory con la configuración especificada.

NombreDescripción
System_CAPS_pubpropertyCancellationToken

Obtiene el token de cancelación predeterminado para este generador de tareas.

System_CAPS_pubpropertyContinuationOptions

Obtiene las opciones predeterminadas de continuación de tareas para este generador de tareas.

System_CAPS_pubpropertyCreationOptions

Obtiene las opciones predeterminadas de creación de tareas para este generador de tareas.

System_CAPS_pubpropertyScheduler

Obtiene el programador de tareas predeterminado para este generador de tareas.

NombreDescripción
System_CAPS_pubmethodContinueWhenAll(Task[], Action<Task[]>)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll(Task[], Action<Task[]>, CancellationToken)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll(Task[], Action<Task[]>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll(Task[], Action<Task[]>, TaskContinuationOptions)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TResult>(Task[], Func<Task[], TResult>)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TResult>(Task[], Func<Task[], TResult>, CancellationToken)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TResult>(Task[], Func<Task[], TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TResult>(Task[], Func<Task[], TResult>, TaskContinuationOptions)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>[]>, TaskContinuationOptions)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[], TResult>)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[], TResult>, CancellationToken)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[], TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAll<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>[], TResult>, TaskContinuationOptions)

Crea una tarea de continuación que comienza cuando un conjunto de tareas especificadas se ha completado.

System_CAPS_pubmethodContinueWhenAny(Task[], Action<Task>)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny(Task[], Action<Task>, CancellationToken)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny(Task[], Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny(Task[], Action<Task>, TaskContinuationOptions)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TResult>(Task[], Func<Task, TResult>)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TResult>(Task[], Func<Task, TResult>, CancellationToken)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TResult>(Task[], Func<Task, TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TResult>(Task[], Func<Task, TResult>, TaskContinuationOptions)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult>(Task<TAntecedentResult>[], Action<Task<TAntecedentResult>>, TaskContinuationOptions)

Crea un objeto Task de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>, TResult>)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>, TResult>, CancellationToken)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>, TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

System_CAPS_pubmethodContinueWhenAny<TAntecedentResult, TResult>(Task<TAntecedentResult>[], Func<Task<TAntecedentResult>, TResult>, TaskContinuationOptions)

Crea un objeto Task<TResult> de continuación que se iniciará cuando se complete cualquier tarea del conjunto proporcionado.

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_pubmethodFromAsync(Func<AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, Object)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync(Func<AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, Object, TaskCreationOptions)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync(IAsyncResult, Action<IAsyncResult>)

Crea un objeto Task que ejecuta una acción del método End cuando se completa la interfaz IAsyncResult especificada.

System_CAPS_pubmethodFromAsync(IAsyncResult, Action<IAsyncResult>, TaskCreationOptions)

Crea un objeto Task que ejecuta una acción del método End cuando se completa la interfaz IAsyncResult especificada.

System_CAPS_pubmethodFromAsync(IAsyncResult, Action<IAsyncResult>, TaskCreationOptions, TaskScheduler)

Crea un objeto Task que ejecuta una acción del método End cuando se completa la interfaz IAsyncResult especificada.

System_CAPS_pubmethodFromAsync<TArg1>(Func<TArg1, AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, TArg1, Object)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1>(Func<TArg1, AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, TArg1, Object, TaskCreationOptions)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TResult>(Func<AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, Object)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TResult>(Func<AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, Object, TaskCreationOptions)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TResult>(IAsyncResult, Func<IAsyncResult, TResult>)

Crea un objeto Task<TResult> que ejecuta una función del método End cuando se completa la interfaz IAsyncResult especificada.

System_CAPS_pubmethodFromAsync<TResult>(IAsyncResult, Func<IAsyncResult, TResult>, TaskCreationOptions)

Crea un objeto Task<TResult> que ejecuta una función del método End cuando se completa la interfaz IAsyncResult especificada.

System_CAPS_pubmethodFromAsync<TResult>(IAsyncResult, Func<IAsyncResult, TResult>, TaskCreationOptions, TaskScheduler)

Crea un objeto Task<TResult> que ejecuta una función del método End cuando se completa la interfaz IAsyncResult especificada.

System_CAPS_pubmethodFromAsync<TArg1, TArg2>(Func<TArg1, TArg2, AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, Object)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2>(Func<TArg1, TArg2, AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, Object, TaskCreationOptions)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TResult>(Func<TArg1, AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, TArg1, Object)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TResult>(Func<TArg1, AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, TArg1, Object, TaskCreationOptions)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2, TArg3>(Func<TArg1, TArg2, TArg3, AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, TArg3, Object)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2, TArg3>(Func<TArg1, TArg2, TArg3, AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, TArg1, TArg2, TArg3, Object, TaskCreationOptions)

Crea un objeto Task que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2, TResult>(Func<TArg1, TArg2, AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, TArg1, TArg2, Object)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2, TResult>(Func<TArg1, TArg2, AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, TArg1, TArg2, Object, TaskCreationOptions)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2, TArg3, TResult>(Func<TArg1, TArg2, TArg3, AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, TArg1, TArg2, TArg3, Object)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

System_CAPS_pubmethodFromAsync<TArg1, TArg2, TArg3, TResult>(Func<TArg1, TArg2, TArg3, AsyncCallback, Object, IAsyncResult>, Func<IAsyncResult, TResult>, TArg1, TArg2, TArg3, Object, TaskCreationOptions)

Crea un objeto Task<TResult> que representa un par de métodos Begin y End que se ajustan al modelo de programación asincrónica.

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_pubmethodStartNew(Action)

Crea e inicia una tarea.

System_CAPS_pubmethodStartNew(Action, CancellationToken)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew(Action, CancellationToken, TaskCreationOptions, TaskScheduler)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew(Action, TaskCreationOptions)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew(Action<Object>, Object)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew(Action<Object>, Object, CancellationToken)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew(Action<Object>, Object, CancellationToken, TaskCreationOptions, TaskScheduler)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew(Action<Object>, Object, TaskCreationOptions)

Crea e inicia un objeto Task.

System_CAPS_pubmethodStartNew<TResult>(Func<TResult>)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<TResult>, CancellationToken)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<TResult>, TaskCreationOptions)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<Object, TResult>, Object)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<Object, TResult>, Object, CancellationToken)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<Object, TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodStartNew<TResult>(Func<Object, TResult>, Object, TaskCreationOptions)

Crea e inicia un objeto Task<TResult>.

System_CAPS_pubmethodToString()

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

.NET Framework proporciona dos fábricas para crear y programar tareas:

  • La TaskFactory clase, que crea Task y Task<TResult> objetos. Puede llamar a las sobrecargas de este método para crear y ejecutar una tarea que requiere argumentos no predeterminados.

    System_CAPS_warningAdvertencia

    A partir de la .NET Framework 4.5, el Task.Run método proporciona la manera más fácil de crear una tarea con el valor predeterminado de valores de configuración e iniciar inmediatamente.

  • La TaskFactory<TResult> clase, que crea Task<TResult> objetos.

La TaskFactory clase le permite hacer lo siguiente:

  • Crear una tarea e iniciar inmediatamente al llamar a la StartNew (método).

    System_CAPS_warningAdvertencia

    A partir de la .NET Framework 4.5, el Task.Run método proporciona la manera más fácil de crear una tarea con el valor predeterminado de valores de configuración e iniciar inmediatamente.

  • Crear una tarea que se inicia cuando se ha completado alguna de las tareas en una matriz mediante una llamada a la ContinueWhenAny (método).

  • Crear una tarea que se inicia cuando se hayan completado todas las tareas en una matriz mediante una llamada a la ContinueWhenAll (método).

Estático Task<TResult>.Factory propiedad devuelve el valor predeterminado es TaskFactory<TResult> objeto. También puede llamar a uno de los TaskFactory clase constructores para configurar el Task objetos que el TaskFactory crea la clase. En el ejemplo siguiente se configura un nuevo TaskFactory objeto para crear tareas que tengan un token de cancelación indicado, las opciones de creación de tareas, opciones de continuación y un programador de tareas personalizado.

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

class Example
{
   static CancellationTokenSource cts = new CancellationTokenSource();

   static TaskFactory factory = new TaskFactory(
      cts.Token,
      TaskCreationOptions.PreferFairness,
      TaskContinuationOptions.ExecuteSynchronously,
      new CustomScheduler());

   static void Main()
   {
      var t2 = factory.StartNew(() => DoWork());
      cts.Dispose();
   }

   static void DoWork() {/*...*/ }
}

En la mayoría de los casos, es necesario crear una instancia de un nuevo TaskFactory instancia. En su lugar, puede usar el Task.Factory propiedad, que devuelve un objeto de fábrica que utiliza valores predeterminados. A continuación, se pueden llamar a sus métodos para comenzar las nuevas tareas o definir las continuaciones de tareas. Para ver una ilustración, vea el ejemplo.

En el ejemplo siguiente se utiliza estático Factory propiedad realizar dos llamadas a la TaskFactory.StartNew (método). La primera rellena una matriz con los nombres de los archivos del directorio Mis documentos del usuario, mientras que el segundo rellena una matriz con los nombres de los subdirectorios del directorio de Mis documentos del usuario. A continuación, llama el TaskFactory.ContinueWhenAll(Task[], Action<Task[]>) método, que muestra información acerca del número de archivos y directorios en las dos matrices después de las dos primeras tareas completan la ejecución.

using System;
using System.IO;
using System.Threading.Tasks;

public class Example
{
   public static void Main()
   {
      Task[] tasks = new Task[2];
      String[] files = null;
      String[] dirs = null;
      String docsDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

      tasks[0] = Task.Factory.StartNew( () => files = Directory.GetFiles(docsDirectory));
      tasks[1] = Task.Factory.StartNew( () => dirs = Directory.GetDirectories(docsDirectory));

      Task.Factory.ContinueWhenAll(tasks, completedTasks => {
                                             Console.WriteLine("{0} contains: ", docsDirectory);
                                             Console.WriteLine("   {0} subdirectories", dirs.Length);
                                             Console.WriteLine("   {0} files", files.Length);
                                          } );
   }
}
// The example displays output like the following:
//       C:\Users\<username>\Documents contains:
//          24 subdirectories
//          16 files

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 públicos y protegidos de TaskFactory son seguros para subprocesos y se pueden usar desde varios subprocesos simultáneamente.

Volver al principio
Mostrar: