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
| 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.