Task.Start Método

Definición

Inicia Task.Starts the Task.

Sobrecargas

Start()

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler actual.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler especificado.Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start()

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler actual.Starts the Task, scheduling it for execution to the current TaskScheduler.

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

Excepciones

Se eliminó la instancia de Task.The Task instance has been disposed.

Task no se encuentra en un estado válido para iniciarse.The Task is not in a valid state to be started. 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.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Ejemplos

En el ejemplo siguiente se llama al constructor Task(Action) para crear una instancia de un nuevo objeto Task que muestra su identificador de tarea y el identificador del subproceso administrado y, a continuación, ejecuta un bucle.The following example calls the Task(Action) constructor to instantiate a new Task object that displays its task ID and managed thread ID and then executes a loop. A continuación, llama al método Start para ejecutar la tarea.It then calls the Start method to execute the task. Dado que se trata de una aplicación de consola, la llamada al método Wait es necesaria para evitar que la aplicación finalice antes de que la tarea termine de ejecutarse.Since this is a console app, the call to the Wait method is necessary to prevent the app from terminating before the task finishes execution.

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 puede iniciarse y ejecutarse una sola vez.A task may be started and run only once. Cualquier intento de programar una tarea por segunda vez producirá una excepción.Any attempts to schedule a task a second time will result in an exception.

El Start se utiliza para ejecutar una tarea que se ha creado llamando a uno de los constructores de Task.The Start is used to execute a task that has been created by calling one of the Task constructors. Normalmente, esto se hace cuando es necesario separar la creación de la tarea de su ejecución, por ejemplo, cuando se ejecutan las tareas que se han creado de forma condicional.Typically, you do this when you need to separate the task's creation from its execution, such as when you conditionally execute tasks that you've created. Para el caso más común en el que no es necesario separar la creación de instancias de la tarea de la ejecución, se recomienda llamar a una sobrecarga del método Task.Run o TaskFactory.StartNew.For the more common case in which you don't need to separate task instantiation from execution, we recommend that you call an overload of the Task.Run or TaskFactory.StartNew method.

Para obtener información sobre cómo controlar las excepciones producidas por las operaciones de tarea, vea control de excepciones.For information on handling exceptions thrown by task operations, see Exception Handling.

Consulte también:

Start(TaskScheduler)

Inicia el objeto Task, programando su ejecución en el objeto TaskScheduler especificado.Starts the Task, scheduling it for execution to the specified TaskScheduler.

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.The TaskScheduler with which to associate and execute this task.

Excepciones

El argumento scheduler es null.The scheduler argument is null.

Task no se encuentra en un estado válido para iniciarse.The Task is not in a valid state to be started. 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.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Se eliminó la instancia de Task.The Task instance has been disposed.

El programador no pudo poner en cola esta tarea.The scheduler was unable to queue this task.

Comentarios

Una tarea solo puede iniciarse y ejecutarse una sola vez.A task may only be started and run only once. Cualquier intento de programar una tarea por segunda vez producirá una excepción.Any attempts to schedule a task a second time will result in an exception.

Para obtener información sobre cómo controlar las excepciones producidas por las operaciones de tarea, vea control de excepciones.For information on handling exceptions thrown by task operations, see Exception Handling.

Consulte también:

Se aplica a