Task.Start Metoda

Definicja

Uruchamia element Task.

Przeciążenia

Nazwa Opis
Start()

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

Start(TaskScheduler)

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

Start()

Źródło:
Task.cs
Źródło:
Task.cs
Źródło:
Task.cs
Źródło:
Task.cs
Źródło:
Task.cs

Uruchamia element Task, planując jego 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 bezpośredniego planowania.

Przykłady

Poniższy przykład wywołuje konstruktor, Task(Action) aby utworzyć wystąpienie 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 , aby wykonać zadanie. Ponieważ jest to aplikacja konsolowa, wywołanie Wait metody jest konieczne, 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
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

Uwagi

Zadanie można uruchomić i uruchomić tylko raz. Każda próba zaplanowana zadania po raz drugi spowoduje 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 typowego przypadku, w którym nie trzeba oddzielić 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)

Źródło:
Task.cs
Źródło:
Task.cs
Źródło:
Task.cs
Źródło:
Task.cs
Źródło:
Task.cs

Uruchamia element Task, planując jego 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 należy 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 bezpośredniego planowania.

Wystąpienie Task zostało usunięte.

Harmonogram nie może w kolejce tego zadania.

Uwagi

Zadanie można uruchomić i uruchamiać tylko raz. Każda próba zaplanowana zadania po raz drugi spowoduje 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