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

Definition

Startet den Task.Starts the Task.

Überlädt

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

Startet den Task und plant seine 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 den Task und plant seine 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 der Task(Action) -Konstruktor aufgerufen, um ein neues Task -Objekt zu instanziieren, das die Task-ID und die verwaltete Thread-ID anzeigt und dann eine-Schleife ausführt.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. Anschließend wird die Start -Methode aufgerufen, um die Aufgabe auszuführen.It then calls the Start method to execute the task. Da es sich hierbei um eine Konsolen-App handelt, Wait ist der Methodenaufrufe erforderlich, um zu verhindern, dass die APP beendet wird, bevor die Ausführung der Aufgabe abgeschlossen ist.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 nur einmal ausgeführt werden.A task may be started and run only once. Alle Versuche, eine Aufgabe ein zweites Mal zu planen, führen zu einer Ausnahme.Any attempts to schedule a task a second time will result in an exception.

Wird verwendet, um eine Aufgabe auszuführen, die durch Aufrufen eines Task der-Konstruktoren erstellt wurde. StartThe Start is used to execute a task that has been created by calling one of the Task constructors. Dies geschieht in der Regel, wenn Sie die Erstellung der Aufgabe von ihrer Ausführung trennen müssen, z. b. Wenn Sie Aufgaben bedingt ausführen, die Sie erstellt haben.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 gängigeren Fall, in dem Sie die Task Instanziierung nicht von der Ausführung trennen müssen, empfiehlt es sich, eine Überladung Task.Run der TaskFactory.StartNew -Methode oder der-Methode aufzurufen.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 von Task Vorgängen ausgelöst werden, finden Sie unter Ausnahmebehandlung.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 einmal gestartet und nur einmal ausgeführt werden.A task may only be started and run only once. Alle Versuche, eine Aufgabe ein zweites Mal zu planen, führen zu einer Ausnahme.Any attempts to schedule a task a second time will result in an exception.

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

Siehe auch

Gilt für: