Task.Start Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee start u de Task.
Overloads
| Name | Description |
|---|---|
| Start() |
Hiermee start u de Taskplanning voor uitvoering naar de huidige TaskScheduler. |
| Start(TaskScheduler) |
Hiermee start u de Task, planning voor uitvoering naar de opgegeven TaskScheduler. |
Start()
Hiermee start u de Taskplanning voor uitvoering naar de huidige TaskScheduler.
public:
void Start();
public void Start();
member this.Start : unit -> unit
Public Sub Start ()
Uitzonderingen
Het Task exemplaar is verwijderd.
De Task status is niet geldig om te worden gestart. Het is mogelijk al gestart, uitgevoerd of geannuleerd of is gemaakt op een manier die geen directe planning ondersteunt.
Voorbeelden
In het volgende voorbeeld wordt de Task(Action) constructor aangeroepen om een nieuw Task object te instantiëren dat de taak-id en de beheerde thread-id weergeeft en vervolgens een lus uitvoert. Vervolgens wordt de Start methode aangeroepen om de taak uit te voeren. Omdat dit een console-app is, is de aanroep van de Wait methode nodig om te voorkomen dat de app wordt beëindigd voordat de taak is uitgevoerd.
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
Opmerkingen
Een taak kan slechts eenmaal worden gestart en uitgevoerd. Pogingen om een taak een tweede keer te plannen, resulteren in een uitzondering.
Deze Start wordt gebruikt om een taak uit te voeren die is gemaakt door een van de Task constructors aan te roepen. Normaal gesproken doet u dit wanneer u het maken van de taak moet scheiden van de uitvoering, bijvoorbeeld wanneer u taken voorwaardelijk uitvoert die u hebt gemaakt. Voor het meest voorkomende geval waarin u de instantiëring van taken niet hoeft te scheiden van de uitvoering, raden we u aan om een overbelasting van de Task.Run of TaskFactory.StartNew methode aan te roepen.
Zie Uitzonderingsafhandeling voor informatie over het afhandelen van uitzonderingen die worden gegenereerd door taakbewerkingen.
Zie ook
Van toepassing op
Start(TaskScheduler)
Hiermee start u de Task, planning voor uitvoering naar de opgegeven 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)
Parameters
- scheduler
- TaskScheduler
De TaskScheduler taak waarmee u deze taak wilt koppelen en uitvoeren.
Uitzonderingen
Het scheduler argument is null.
De Task status is niet geldig om te worden gestart. Het is mogelijk al gestart, uitgevoerd of geannuleerd of is gemaakt op een manier die geen directe planning ondersteunt.
Het Task exemplaar is verwijderd.
De scheduler kan deze taak niet in de wachtrij plaatsen.
Opmerkingen
Een taak kan slechts eenmaal worden gestart en slechts één keer worden uitgevoerd. Pogingen om een taak een tweede keer te plannen, resulteren in een uitzondering.
Zie Uitzonderingsafhandeling voor informatie over het afhandelen van uitzonderingen die worden gegenereerd door taakbewerkingen.