Task.Start Metodo

Definizione

Avvia Task.Starts the Task.

Overload

Start()

Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler corrente.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler specificato.Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start()

Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler corrente.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 ()

Eccezioni

L'istanza di Task è stata eliminata.The Task instance has been disposed.

Task non è in uno stato valido per essere avviato.The Task is not in a valid state to be started. Potrebbe essere già stato avviato, eseguito o annullato oppure potrebbe essere stato creato in un modo che non supporta la pianificazione diretta.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Esempi

Nell'esempio seguente viene chiamato il costruttore Task(Action) per creare un'istanza di un nuovo oggetto Task in cui vengono visualizzati l'ID attività e l'ID del thread gestito, quindi viene eseguito un ciclo.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. Chiama quindi il metodo Start per eseguire l'attività.It then calls the Start method to execute the task. Poiché si tratta di un'app console, la chiamata al metodo Wait è necessaria per impedire che l'app venga terminata prima del completamento dell'esecuzione dell'attività.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

Commenti

Un'attività può essere avviata ed eseguita una sola volta.A task may be started and run only once. Qualsiasi tentativo di pianificare un'attività una seconda volta determinerà un'eccezione.Any attempts to schedule a task a second time will result in an exception.

Il Start viene utilizzato per eseguire un'attività creata chiamando uno dei costruttori di Task.The Start is used to execute a task that has been created by calling one of the Task constructors. Questa operazione viene in genere eseguita quando è necessario separare la creazione dell'attività dalla relativa esecuzione, ad esempio quando si eseguono in modo condizionale le attività create.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. Per il caso più comune in cui non è necessario separare la creazione di un'istanza dell'attività dall'esecuzione, si consiglia di chiamare un overload del metodo 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.

Per informazioni sulla gestione delle eccezioni generate dalle operazioni delle attività, vedere gestione delle eccezioni.For information on handling exceptions thrown by task operations, see Exception Handling.

Vedi anche

Start(TaskScheduler)

Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler specificato.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)

Parametri

scheduler
TaskScheduler

Oggetto TaskScheduler a cui associare e con cui eseguire questa attività.The TaskScheduler with which to associate and execute this task.

Eccezioni

Il valore dell'argomento scheduler è null.The scheduler argument is null.

Task non è in uno stato valido per essere avviato.The Task is not in a valid state to be started. Potrebbe essere già stato avviato, eseguito o annullato oppure potrebbe essere stato creato in un modo che non supporta la pianificazione diretta.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

L'istanza di Task è stata eliminata.The Task instance has been disposed.

L'utilità di pianificazione non è riuscita a inserire in coda questa attività.The scheduler was unable to queue this task.

Commenti

Un'attività può essere avviata ed eseguita solo una volta.A task may only be started and run only once. Qualsiasi tentativo di pianificare un'attività una seconda volta determinerà un'eccezione.Any attempts to schedule a task a second time will result in an exception.

Per informazioni sulla gestione delle eccezioni generate dalle operazioni delle attività, vedere gestione delle eccezioni.For information on handling exceptions thrown by task operations, see Exception Handling.

Vedi anche

Si applica a