Task.Start Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
TaskStartar .
Överlagringar
| Name | Description |
|---|---|
| Start() |
TaskStartar , schemalägger den för körning till den aktuella TaskScheduler. |
| Start(TaskScheduler) |
TaskStartar , schemalägger den för körning till angiven TaskScheduler. |
Start()
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
TaskStartar , schemalägger den för körning till den aktuella TaskScheduler.
public:
void Start();
public void Start();
member this.Start : unit -> unit
Public Sub Start ()
Undantag
Instansen Task har tagits bort.
Är Task inte i ett giltigt tillstånd som ska startas. Den kan redan ha startats, körts eller avbrutits, eller så kan den ha skapats på ett sätt som inte stöder direkt schemaläggning.
Exempel
I följande exempel anropas Task(Action) konstruktorn för att instansiera ett nytt Task objekt som visar dess aktivitets-ID och hanterade tråd-ID och sedan kör en loop. Den anropar Start sedan metoden för att köra uppgiften. Eftersom det här är en konsolapp är anropet Wait till metoden nödvändigt för att förhindra att appen avslutas innan aktiviteten slutför körningen.
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
Kommentarer
En uppgift kan bara startas och köras en gång. Alla försök att schemalägga en aktivitet en andra gång resulterar i ett undantag.
Start Används för att köra en uppgift som har skapats genom att anropa en av konstruktörernaTask. Vanligtvis gör du detta när du behöver separera uppgiftens skapande från dess körning, till exempel när du villkorligt kör uppgifter som du har skapat. För det vanligare fallet där du inte behöver separera instansiering av aktiviteter från körning rekommenderar vi att du anropar en överbelastning av Task.Run metoden eller TaskFactory.StartNew .
Information om hur du hanterar undantag som genereras av aktivitetsåtgärder finns i Undantagshantering.
Se även
Gäller för
Start(TaskScheduler)
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
- Källa:
- Task.cs
TaskStartar , schemalägger den för körning till angiven 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)
Parametrar
- scheduler
- TaskScheduler
Med TaskScheduler vilken du ska associera och köra den här uppgiften.
Undantag
Argumentet scheduler är null.
Är Task inte i ett giltigt tillstånd som ska startas. Den kan redan ha startats, körts eller avbrutits, eller så kan den ha skapats på ett sätt som inte stöder direkt schemaläggning.
Instansen Task har tagits bort.
Schemaläggaren kunde inte köa den här uppgiften.
Kommentarer
En uppgift kan bara startas och köras bara en gång. Alla försök att schemalägga en aktivitet en andra gång resulterar i ett undantag.
Information om hur du hanterar undantag som genereras av aktivitetsåtgärder finns i Undantagshantering.