Task.Start Metoda

Definicja

Uruchamia element Task.

Przeciążenia

Start()

Uruchamia element Task, planując wykonanie do bieżącego TaskSchedulerelementu .

Start(TaskScheduler)

Uruchamia obiekt Task, planując wykonanie do określonego TaskSchedulerelementu .

Start()

Uruchamia element Task, planując wykonanie do bieżącego TaskSchedulerelementu .

public:
 void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()

Wyjątki

Wystąpienie Task zostało usunięte.

Element Task nie jest w prawidłowym stanie do uruchomienia. Być może została już uruchomiona, wykonana lub anulowana albo została utworzona w sposób, który nie obsługuje planowania bezpośredniego.

Przykłady

Poniższy przykład wywołuje konstruktora w Task(Action) celu utworzenia wystąpienia nowego Task obiektu, który wyświetla identyfikator zadania i identyfikator zarządzanego wątku, a następnie wykonuje pętlę. Następnie wywołuje metodę Start do wykonania zadania. Ponieważ jest to aplikacja konsolowa, wywołanie Wait metody jest niezbędne, aby zapobiec zakończeniu działania aplikacji przed zakończeniem wykonywania zadania.

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

Uwagi

Zadanie można uruchomić i uruchomić tylko raz. Wszelkie próby zaplanowanego zadania po raz drugi spowodują wyjątek.

Element Start służy do wykonywania zadania, które zostało utworzone przez wywołanie jednego z Task konstruktorów. Zazwyczaj należy to zrobić, gdy trzeba oddzielić tworzenie zadania od jego wykonania, na przykład podczas warunkowego wykonywania utworzonych zadań. W przypadku bardziej typowych przypadków, w których nie trzeba oddzielać wystąpienia zadania od wykonywania, zalecamy wywołanie przeciążenia Task.Run metody lub TaskFactory.StartNew .

Aby uzyskać informacje na temat obsługi wyjątków zgłaszanych przez operacje zadań, zobacz Obsługa wyjątków.

Zobacz też

Dotyczy

Start(TaskScheduler)

Uruchamia obiekt Task, planując wykonanie do określonego TaskSchedulerelementu .

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)

Parametry

scheduler
TaskScheduler

Element TaskScheduler , z którym chcesz skojarzyć i wykonać to zadanie.

Wyjątki

Argumentem scheduler jest null.

Element Task nie jest w prawidłowym stanie do uruchomienia. Być może została już uruchomiona, wykonana lub anulowana albo została utworzona w sposób, który nie obsługuje planowania bezpośredniego.

Wystąpienie Task zostało usunięte.

Harmonogram nie może utworzyć kolejki tego zadania.

Uwagi

Zadanie może być uruchamiane tylko raz i uruchamiane tylko raz. Wszelkie próby zaplanowanego zadania po raz drugi spowodują wyjątek.

Aby uzyskać informacje na temat obsługi wyjątków zgłaszanych przez operacje zadań, zobacz Obsługa wyjątków.

Zobacz też

Dotyczy