Task.Start Methode

Definition

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".

Weitere Informationen

Gilt für: