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

Definition

Startet den Task.Starts the Task.

Überlädt

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

Startet die Task und plant ihre Ausführung mit dem aktuellen TaskScheduler.Starts the Task, scheduling it for execution to the current TaskScheduler.

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

Startet die Task und plant ihre Ausführung mit dem angegebenen TaskScheduler.Starts the Task, scheduling it for execution to the specified TaskScheduler.

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

Startet die Task und plant ihre Ausführung mit dem aktuellen TaskScheduler.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 ()

Ausnahmen

Die Task-Instanz wurde verworfen.The Task instance has been disposed.

Die Task liegt nicht in einem gültigen Zustand vor, um gestartet werden zu können.The Task is not in a valid state to be started. 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.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Beispiele

Im folgenden Beispiel wird die Task(Action) Konstruktor zum Instanziieren einer neuen Task Objekt, das die Task-ID und der verwaltete Thread-ID angezeigt und führt dann eine Schleife.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. Es ruft dann die Start Methode, um die Aufgabe auszuführen.It then calls the Start method to execute the task. Da dies eine Konsolen-app, den Aufruf von ist das Wait Methode ist erforderlich, um zu verhindern, dass die app wird beendet, bevor der Task die Ausführung beendet.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

Hinweise

Eine Aufgabe kann gestartet und werden nur einmal ausgeführt werden.A task may be started and run only once. Jeder Versuch, eine Aufgabe planen Sie ein zweites Mal führt zu einer Ausnahme.Any attempts to schedule a task a second time will result in an exception.

Die Start wird verwendet, um eine Aufgabe auszuführen, die durch einen Aufruf der erstellt wurde die Task Konstruktoren.The Start is used to execute a task that has been created by calling one of the Task constructors. In der Regel führen Sie dies, wenn Sie trennen die taskerstellung, aus der Ausführung, z. B. Wenn Sie bedingte Aufgaben ausführen, die Sie erstellt haben müssen.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. Für den meisten Fällen, in dem Sie keine Aufgabe Instanziierung von der Ausführung trennen müssen, empfehlen wir, dass Sie eine Überladung von Aufrufen der Task.Run oder TaskFactory.StartNew Methode.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.

Informationen zur Behandlung von Ausnahmen, die durch Vorgänge ausgelöst werden, finden Sie unter Exception Handling.For information on handling exceptions thrown by task operations, see Exception Handling.

Siehe auch

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

Startet die Task und plant ihre Ausführung mit dem angegebenen TaskScheduler.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)

Parameter

scheduler
TaskScheduler TaskScheduler TaskScheduler TaskScheduler

Der TaskScheduler, dem diese Aufgabe zugeordnet und mit dem sie ausgeführt werden soll.The TaskScheduler with which to associate and execute this task.

Ausnahmen

Das scheduler-Argument lautet null.The scheduler argument is null.

Die Task liegt nicht in einem gültigen Zustand vor, um gestartet werden zu können.The Task is not in a valid state to be started. 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.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Die Task-Instanz wurde verworfen.The Task instance has been disposed.

Der Planer konnte diesen Task nicht in die Warteschlange einreihen.The scheduler was unable to queue this task.

Hinweise

Eine Aufgabe kann nur gestartet und nur einmal ausgeführt werden.A task may only be started and run only once. Jeder Versuch, eine Aufgabe planen Sie ein zweites Mal führt zu einer Ausnahme.Any attempts to schedule a task a second time will result in an exception.

Informationen zur Behandlung von Ausnahmen, die durch Vorgänge ausgelöst werden, finden Sie unter Exception Handling.For information on handling exceptions thrown by task operations, see Exception Handling.

Siehe auch

Gilt für: