Task.Start Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Avvia Task.
Overload
Start() |
Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler corrente. |
Start(TaskScheduler) |
Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler specificato. |
Start()
Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler corrente.
public:
void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()
Eccezioni
L’istanza di Task è stata eliminata.
Task non è in uno stato valido per essere avviato. Potrebbe essere già stato avviato, eseguito o annullato oppure potrebbe essere stato creato in un modo che non supporta la pianificazione diretta.
Esempio
Nell'esempio seguente viene chiamato il costruttore per creare un'istanza di un nuovo Task oggetto che visualizza l'ID attività e l'ID Task(Action) thread gestito e quindi esegue un ciclo. Chiama quindi il Start metodo per eseguire l'attività. Poiché si tratta di un'app console, la chiamata al Wait metodo è necessaria per impedire all'app di terminare prima che l'attività finisca l'esecuzione.
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. Eventuali tentativi di pianificare un'attività una seconda volta generano un'eccezione.
Viene Start usato per eseguire un'attività creata chiamando uno dei Task costruttori. In genere, questa operazione viene eseguita quando è necessario separare la creazione dell'attività dalla relativa esecuzione, ad esempio quando si eseguono in modo condizionale le attività create. Per il caso più comune in cui non è necessario separare l'istanza dell'attività dall'esecuzione, è consigliabile chiamare un overload del Task.Run metodo o TaskFactory.StartNew .
Per informazioni sulla gestione delle eccezioni generate dalle operazioni delle attività, vedere Gestione delle eccezioni.
Vedi anche
Si applica a
Start(TaskScheduler)
Avvia Task, pianificandone l'esecuzione nell'oggetto TaskScheduler specificato.
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à.
Eccezioni
Il valore dell'argomento scheduler
è null
.
Task non è in uno stato valido per essere avviato. Potrebbe essere già stato avviato, eseguito o annullato oppure potrebbe essere stato creato in un modo che non supporta la pianificazione diretta.
L’istanza di Task è stata eliminata.
L'utilità di pianificazione non è riuscita a inserire in coda questa attività.
Commenti
Un'attività può essere avviata ed eseguita una sola volta. Eventuali tentativi di pianificare un'attività una seconda volta generano un'eccezione.
Per informazioni sulla gestione delle eccezioni generate dalle operazioni delle attività, vedere Gestione delle eccezioni.