Task.Start Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Spustí .Task
Přetížení
| Name | Description |
|---|---|
| Start() |
TaskSpustí , plánování spuštění na aktuální TaskScheduler. |
| Start(TaskScheduler) |
TaskSpustí , plánování spuštění do zadaného TaskScheduler. |
Start()
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
TaskSpustí , plánování spuštění na aktuální TaskScheduler.
public:
void Start();
public void Start();
member this.Start : unit -> unit
Public Sub Start ()
Výjimky
Instance Task byla odstraněna.
Není Task v platném stavu, který se má spustit. Možná už byl spuštěný, spuštěný nebo zrušený nebo byl vytvořen způsobem, který nepodporuje přímé plánování.
Příklady
Následující příklad volá Task(Action) konstruktor, který vytvoří instanci nového Task objektu, který zobrazí ID úlohy a SPRAVOVANÉ ID vlákna a pak spustí smyčku. Potom zavolá metodu Start , která spustí úlohu. Vzhledem k tomu, že se jedná o konzolovou aplikaci, je volání Wait metody nezbytné, aby se zabránilo ukončení aplikace před dokončením provádění úlohy.
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
Poznámky
Úkol může být spuštěn a spuštěn pouze jednou. Při každém pokusu o naplánování úkolu podruhé dojde k výjimce.
Slouží Start ke spuštění úlohy vytvořené voláním jednoho z Task konstruktorů. Obvykle to uděláte, když potřebujete oddělit vytvoření úkolu od jejího spuštění, například při podmíněném provádění úloh, které jste vytvořili. Pro častější případ, kdy nepotřebujete oddělit instanci úlohy od spuštění, doporučujeme volat přetížení Task.Run nebo TaskFactory.StartNew metody.
Informace o zpracování výjimek vyvolaných operacemi úloh naleznete v tématu Zpracování výjimek.
Viz také
Platí pro
Start(TaskScheduler)
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
- Zdroj:
- Task.cs
TaskSpustí , plánování spuštění do zadaného 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)
Parametry
- scheduler
- TaskScheduler
S TaskScheduler tím, k čemu chcete tento úkol přidružit a spustit.
Výjimky
Argument scheduler je null.
Není Task v platném stavu, který se má spustit. Možná už byl spuštěný, spuštěný nebo zrušený nebo byl vytvořen způsobem, který nepodporuje přímé plánování.
Instance Task byla odstraněna.
Plánovač nemohl tuto úlohu zařabit do fronty.
Poznámky
Úlohu lze spustit a spustit pouze jednou. Při každém pokusu o naplánování úkolu podruhé dojde k výjimce.
Informace o zpracování výjimek vyvolaných operacemi úloh naleznete v tématu Zpracování výjimek.