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 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.