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 das Task.
Überlädt
| Name | Beschreibung |
|---|---|
| Start() |
Startet den Task, die Planung für die Ausführung bis zur aktuellen TaskScheduler. |
| Start(TaskScheduler) |
Startet den Task, der sie für die Ausführung an die angegebene TaskScheduler. |
Start()
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Startet den Task, die Planung für die Ausführung bis zur aktuellen TaskScheduler.
public:
void Start();
public void Start();
member this.Start : unit -> unit
Public Sub Start ()
Ausnahmen
Die Task Instanz wurde verworfen.
Dies Task ist nicht in einem gültigen Zustand, der gestartet werden soll. Es wurde möglicherweise bereits gestartet, ausgeführt oder abgebrochen, oder es wurde auf eine Weise erstellt, die die direkte Planung nicht 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 zum Ausführen der Aufgabe aufgerufen. 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
open System.Threading
open System.Threading.Tasks
let t =
new Task(fun () ->
printfn $"Task {Task.CurrentId} running on thread {Thread.CurrentThread.ManagedThreadId}"
for i = 1 to 10 do
printfn $" Iteration {i}")
t.Start()
t.Wait() |> ignore
// 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ühren zu einer Ausnahme.
Es Start wird verwendet, um eine Aufgabe auszuführen, die durch Aufrufen eines der Task Konstruktoren erstellt wurde. In der Regel tun Sie dies, wenn Sie die Erstellung der Aufgabe von der Ausführung trennen müssen, z. B. wenn Sie aufgaben, die Sie erstellt haben, bedingt ausführen. Für den häufigeren Fall, in dem Sie die Aufgabeninstanziierung nicht von der Ausführung trennen müssen, empfehlen wir, eine Überladung der Task.Run Oder-Methode TaskFactory.StartNew aufzurufen.
Informationen zum Behandeln von Ausnahmen, die von Vorgangsvorgängen ausgelöst werden, finden Sie unter "Ausnahmebehandlung".
Weitere Informationen
Gilt für:
Start(TaskScheduler)
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
- Quelle:
- Task.cs
Startet den Task, der sie für die Ausführung an die angegebene 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 ausgeführt werden soll.
Ausnahmen
Das scheduler Argument ist null.
Dies Task ist nicht in einem gültigen Zustand, der gestartet werden soll. Es wurde möglicherweise bereits gestartet, ausgeführt oder abgebrochen, oder es wurde auf eine Weise erstellt, die die direkte Planung nicht unterstützt.
Die Task Instanz wurde verworfen.
Der Scheduler konnte diesen Vorgang nicht in die Warteschlange stellen.
Hinweise
Eine Aufgabe kann nur einmal gestartet und ausgeführt werden. Alle Versuche, einen Vorgang ein zweites Mal zu planen, führen zu einer Ausnahme.
Informationen zum Behandeln von Ausnahmen, die von Vorgangsvorgängen ausgelöst werden, finden Sie unter "Ausnahmebehandlung".