Task.Start Task.Start Task.Start Task.Start Method

Definizione

Avvia Task.Starts the Task.

Overload

Start() Start() Start() Start()

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

Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler)

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

Start() Start() Start() 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

L'esempio seguente chiama il Task(Action) costruttore per creare un'istanza di un nuovo Task oggetto che consente di visualizzare la propria attività ID e l'ID thread gestito, quindi esegue 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 Start metodo per eseguire l'attività.It then calls the Start method to execute the task. Poiché si tratta di un'app console, la chiamata al Wait metodo è necessario per impedire l'interruzione prima che l'attività viene completata l'esecuzione dell'app.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 eseguire una sola volta.A task may be started and run only once. Qualsiasi tentativo di pianificare un'attività una seconda volta comporterà un'eccezione.Any attempts to schedule a task a second time will result in an exception.

Il Start viene usato per eseguire un'attività che è stata creata chiamando uno del Task costruttori.The Start is used to execute a task that has been created by calling one of the Task constructors. In genere, eseguire questa operazione quando è necessario separare la creazione dell'attività dalla relativa esecuzione, ad esempio quando si esegue in modo condizionale le attività che è stata creata.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. Nel caso più comune in cui non occorre separare la creazione di istanze di attività di esecuzione, è consigliabile chiamare un overload del Task.Run o TaskFactory.StartNew (metodo).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 da operazioni di attività, vedere gestione delle eccezioni.For information on handling exceptions thrown by task operations, see Exception Handling.

Vedi anche

Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler) 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 TaskScheduler TaskScheduler 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 una sola volta.A task may only be started and run only once. Qualsiasi tentativo di pianificare un'attività una seconda volta comporterà un'eccezione.Any attempts to schedule a task a second time will result in an exception.

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

Vedi anche

Si applica a