Compartir a través de


Task.Start Método

Definición

Inicia Task.

Sobrecargas

Start()

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler actual.

Start(TaskScheduler)

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler especificado.

Start()

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler actual.

public:
 void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()

Excepciones

Se eliminó la instancia de Task.

Task no se encuentra en un estado válido para iniciarse. Puede que ya se iniciase, se ejecutase o se cancelase, o puede que se crease de una manera que no admite la programación directa.

Ejemplos

En el ejemplo siguiente se llama al Task(Action) constructor para crear una instancia de un nuevo Task objeto que muestra su identificador de tarea y el identificador de subproceso administrado y, a continuación, ejecuta un bucle . A continuación, llama al Start método para ejecutar la tarea. Puesto que se trata de una aplicación de consola, la llamada al Wait método es necesaria para evitar que la aplicación finalice antes de que la tarea finalice la ejecución.

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

public class Example
{
   public static void Main()
   {
      var t = new Task( () => { Console.WriteLine("Task {0} running on thread {1}",
                                                  Task.CurrentId, Thread.CurrentThread.ManagedThreadId);
                                for (int ctr = 1; ctr <= 10; ctr++)
                                   Console.WriteLine("   Iteration {0}", ctr); } 
                        );
      t.Start();
      t.Wait();   
   }
}
// The example displays output like the following:
//     Task 1 running on thread 3
//        Iteration 1
//        Iteration 2
//        Iteration 3
//        Iteration 4
//        Iteration 5
//        Iteration 6
//        Iteration 7
//        Iteration 8
//        Iteration 9
//        Iteration 10
Imports System.Threading
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim t As New Task(Sub()
                           Console.WriteLine("Task {0} running on thread {1}",
                                             Task.CurrentId, Thread.CurrentThread.ManagedThreadId )
                           For ctr As Integer = 1 To 10
                              Console.WriteLine("   Iteration {0}", ctr)
                           Next   
                        End Sub)
      t.Start
      t.Wait()   
   End Sub
End Module
' The example displays output like the following:
'     Task 1 running on thread 3
'        Iteration 1
'        Iteration 2
'        Iteration 3
'        Iteration 4
'        Iteration 5
'        Iteration 6
'        Iteration 7
'        Iteration 8
'        Iteration 9
'        Iteration 10

Comentarios

Una tarea se puede iniciar y ejecutar solo una vez. Cualquier intento de programar una tarea una segunda vez producirá una excepción.

Start se usa para ejecutar una tarea que se ha creado mediante una llamada a uno de los Task constructores. Normalmente, lo hace cuando necesite separar la creación de la tarea de su ejecución, por ejemplo, al ejecutar condicionalmente las tareas que ha creado. Para el caso más común en el que no es necesario separar la creación de instancias de tareas de la ejecución, se recomienda llamar a una sobrecarga del Task.Run método o TaskFactory.StartNew .

Para obtener información sobre el control de excepciones producidas por operaciones de tareas, vea Control de excepciones.

Consulte también

Se aplica a

Start(TaskScheduler)

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler especificado.

public:
 void Start(System::Threading::Tasks::TaskScheduler ^ scheduler);
public void Start (System.Threading.Tasks.TaskScheduler scheduler);
member this.Start : System.Threading.Tasks.TaskScheduler -> unit
Public Sub Start (scheduler As TaskScheduler)

Parámetros

scheduler
TaskScheduler

Objeto TaskScheduler con el que se va a asociar y ejecutar esta tarea.

Excepciones

El argumento scheduler es null.

Task no se encuentra en un estado válido para iniciarse. Puede que ya se iniciase, se ejecutase o se cancelase, o puede que se crease de una manera que no admite la programación directa.

Se eliminó la instancia de Task.

El programador no pudo poner en cola esta tarea.

Comentarios

Una tarea solo se puede iniciar y ejecutar solo una vez. Cualquier intento de programar una tarea una segunda vez producirá una excepción.

Para obtener información sobre el control de excepciones producidas por operaciones de tareas, vea Control de excepciones.

Consulte también

Se aplica a