Task.Start Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Startet den Task.
Überlädt
Start() |
Startet die Task und plant ihre Ausführung mit dem aktuellen TaskScheduler. |
Start(TaskScheduler) |
Startet die Task und plant ihre Ausführung mit dem angegebenen TaskScheduler. |
Start()
Startet die Task und plant ihre Ausführung mit dem aktuellen TaskScheduler.
public:
void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()
Ausnahmen
Die Task-Instanz wurde verworfen.
Die Task liegt nicht in einem gültigen Zustand vor, um gestartet werden zu können. Möglicherweise wurde sie bereits gestartet, ausgeführt oder abgebrochen, oder sie wurde möglicherweise auf eine Weise erstellt, die keine direkte Planung unterstützt.
Beispiele
Im folgenden Beispiel wird der Task(Action) Konstruktor aufgerufen, um ein neues Task Objekt zu instanziieren, das die Aufgaben-ID und die verwaltete Thread-ID anzeigt und dann eine Schleife ausführt. Anschließend wird die Start Methode aufgerufen, um die Aufgabe auszuführen. Da es sich um eine Konsolen-App handelt, ist der Aufruf der Wait Methode erforderlich, um zu verhindern, dass die App beendet wird, bevor die Ausführung der Aufgabe abgeschlossen ist.
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
Hinweise
Eine Aufgabe kann nur einmal gestartet und ausgeführt werden. Alle Versuche, einen Vorgang ein zweites Mal zu planen, führt zu einer Ausnahme.
Dies Start wird verwendet, um eine Aufgabe auszuführen, die durch Aufrufen eines der Task Konstruktoren erstellt wurde. In der Regel müssen Sie die Erstellung der Aufgabe von der Ausführung trennen, z. B. wenn Sie Aufgaben, die Sie erstellt haben, bedingt ausführen. Für den häufigeren Fall, in dem Sie die Instanziierung von Vorgängen nicht von der Ausführung trennen müssen, empfehlen wir, eine Überladung der Methode TaskFactory.StartNew oder der Task.Run Methode aufzurufen.
Informationen zum Behandeln von Ausnahmen, die von Vorgangsvorgängen ausgelöst werden, finden Sie unter "Ausnahmebehandlung".
Siehe auch
Gilt für
Start(TaskScheduler)
Startet die Task und plant ihre Ausführung mit dem angegebenen 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)
Parameter
- scheduler
- TaskScheduler
Der TaskScheduler, dem diese Aufgabe zugeordnet und mit dem sie ausgeführt werden soll.
Ausnahmen
Das scheduler
-Argument lautet null
.
Die Task liegt nicht in einem gültigen Zustand vor, um gestartet werden zu können. Möglicherweise wurde sie bereits gestartet, ausgeführt oder abgebrochen, oder sie wurde möglicherweise auf eine Weise erstellt, die keine direkte Planung unterstützt.
Die Task-Instanz wurde verworfen.
Der Planer konnte diesen Task nicht in die Warteschlange einreihen.
Hinweise
Eine Aufgabe kann nur einmal gestartet und ausgeführt werden. Alle Versuche, einen Vorgang ein zweites Mal zu planen, führt zu einer Ausnahme.
Informationen zum Behandeln von Ausnahmen, die von Vorgangsvorgängen ausgelöst werden, finden Sie unter "Ausnahmebehandlung".