Task.Start Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.