Task.Start Método

Definição

Inicia o Task.Starts the Task.

Sobrecargas

Start()

Inicia o Task, agendando-o para execução no TaskScheduler atual.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

Inicia o Task, agendando-o para execução no TaskScheduler especificado.Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start()

Inicia o Task, agendando-o para execução no TaskScheduler atual.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 ()

Exceções

A instância Task foi descartada.The Task instance has been disposed.

O Task não está em um estado válido para ser iniciado.The Task is not in a valid state to be started. Ele pode já ter sido iniciado, executado ou cancelado ou pode ter sido criado de forma a não dar suporte ao agendamento direto.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Exemplos

O exemplo a seguir chama o Construtor Task(Action) para criar uma instância de um novo objeto Task que exibe sua ID de tarefa e ID de thread gerenciado e, em seguida, executa um loop.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. Em seguida, ele chama o método Start para executar a tarefa.It then calls the Start method to execute the task. Como esse é um aplicativo de console, a chamada para o método Wait é necessária para impedir que o aplicativo seja encerrado antes de concluir a execução da tarefa.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

Comentários

Uma tarefa pode ser iniciada e executada apenas uma vez.A task may be started and run only once. Qualquer tentativa de agendar uma tarefa uma segunda vez resultará em uma exceção.Any attempts to schedule a task a second time will result in an exception.

O Start é usado para executar uma tarefa que foi criada chamando um dos construtores Task.The Start is used to execute a task that has been created by calling one of the Task constructors. Normalmente, você faz isso quando precisa separar a criação da tarefa de sua execução, como quando você executa condicionalmente as tarefas que você criou.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 o caso mais comum em que você não precisa separar a instanciação de tarefa da execução, é recomendável chamar uma sobrecarga do método Task.Run ou 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 obter informações sobre como lidar com exceções geradas por operações de tarefa, consulte manipulação de exceção.For information on handling exceptions thrown by task operations, see Exception Handling.

Veja também

Start(TaskScheduler)

Inicia o Task, agendando-o para execução no 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

O TaskScheduler com o qual associar e executar essa tarefa.The TaskScheduler with which to associate and execute this task.

Exceções

O argumento scheduler é null.The scheduler argument is null.

O Task não está em um estado válido para ser iniciado.The Task is not in a valid state to be started. Ele pode já ter sido iniciado, executado ou cancelado ou pode ter sido criado de forma a não dar suporte ao agendamento direto.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

A instância Task foi descartada.The Task instance has been disposed.

O agendador não pôde colocar essa tarefa na fila.The scheduler was unable to queue this task.

Comentários

Uma tarefa só pode ser iniciada e executada uma vez.A task may only be started and run only once. Qualquer tentativa de agendar uma tarefa uma segunda vez resultará em uma exceção.Any attempts to schedule a task a second time will result in an exception.

Para obter informações sobre como lidar com exceções geradas por operações de tarefa, consulte manipulação de exceção.For information on handling exceptions thrown by task operations, see Exception Handling.

Veja também

Aplica-se a