Task.Start Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.