Task.Start Método

Definición

Inicia el Task.

Sobrecargas

Nombre Description
Start()

Inicia , Tasklo programa para su ejecución en el objeto actual TaskScheduler.

Start(TaskScheduler)

Inicia , Tasklo programa para su ejecución en el especificado TaskScheduler.

Start()

Inicia , Tasklo programa para su ejecución en el objeto actual TaskScheduler.

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

Excepciones

La Task instancia se ha eliminado.

no Task está en un estado válido que se va a iniciar. Es posible que ya se haya iniciado, ejecutado o cancelado, o que se haya creado de una manera que no admita 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. Dado 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
open System.Threading
open System.Threading.Tasks

let t =
    new Task(fun () ->
        printfn $"Task {Task.CurrentId} running on thread {Thread.CurrentThread.ManagedThreadId}"

        for i = 1 to 10 do
            printfn $"   Iteration {i}")

t.Start()
t.Wait() |> ignore

// 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 solo una vez. Los intentos de programar una tarea una segunda vez producirán 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, como 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 Task.Run ejecución, se recomienda llamar a una sobrecarga del 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 , Tasklo programa para su ejecución en el especificado 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

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

Excepciones

El scheduler argumento es null.

no Task está en un estado válido que se va a iniciar. Es posible que ya se haya iniciado, ejecutado o cancelado, o que se haya creado de una manera que no admita la programación directa.

La Task instancia se ha eliminado.

El programador no pudo poner en cola esta tarea.

Comentarios

Una tarea solo se puede iniciar y ejecutar solo una vez. Los intentos de programar una tarea una segunda vez producirán 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