Task.Start Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Elindítja a Task.
Túlterhelések
| Name | Description |
|---|---|
| Start() |
Elindítja a Taskelemet, és a végrehajtás ütemezését az aktuálisra TaskSchedulerütemezi. |
| Start(TaskScheduler) |
Elindítja a Taskparancsot, és a megadott TaskScheduleridőpontra ütemezi a végrehajtáshoz. |
Start()
- Forrás:
- Task.cs
- Forrás:
- Task.cs
- Forrás:
- Task.cs
- Forrás:
- Task.cs
- Forrás:
- Task.cs
Elindítja a Taskelemet, és a végrehajtás ütemezését az aktuálisra TaskSchedulerütemezi.
public:
void Start();
public void Start();
member this.Start : unit -> unit
Public Sub Start ()
Kivételek
A Task példány el lett adva.
Az Task indítás nem érvényes állapotban van. Lehet, hogy már el lett indítva, végrehajtva vagy megszakítva, vagy olyan módon hozták létre, amely nem támogatja a közvetlen ütemezést.
Példák
Az alábbi példa meghívja a Task(Action) konstruktort egy új Task objektum példányosítására, amely megjeleníti a feladatazonosítóját és a felügyelt szálazonosítóját, majd végrehajt egy hurkot. Ezután meghívja a metódust Start a feladat végrehajtásához. Mivel ez egy konzolalkalmazás, a Wait metódus meghívására azért van szükség, hogy megakadályozza az alkalmazás leállását, mielőtt a feladat befejeződik.
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
Megjegyzések
Egy tevékenység csak egyszer indítható el és futtatható. A tevékenységek második alkalommal történő ütemezésére tett kísérletek kivételt eredményeznek.
Az Start egyik konstruktor meghívásával Task létrehozott feladat végrehajtására szolgál. Ez általában akkor történik, ha el kell különítenie a tevékenység létrehozását a végrehajtástól, például amikor feltételesen végrehajtja a létrehozott tevékenységeket. Az a gyakoribb eset, amikor nem kell elkülönítenie a feladat-példányosítást a végrehajtástól, javasoljuk, hogy hívja meg a Task.Run metódus túlterhelését TaskFactory.StartNew .
A tevékenységműveletek által okozott kivételek kezelésével kapcsolatos információkért lásd a Kivételkezelés című témakört.
Lásd még
A következőre érvényes:
Start(TaskScheduler)
- Forrás:
- Task.cs
- Forrás:
- Task.cs
- Forrás:
- Task.cs
- Forrás:
- Task.cs
- Forrás:
- Task.cs
Elindítja a Taskparancsot, és a megadott TaskScheduleridőpontra ütemezi a végrehajtáshoz.
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)
Paraméterek
- scheduler
- TaskScheduler
A TaskScheduler feladat társításához és végrehajtásához.
Kivételek
Az scheduler argumentum a következő null: .
Az Task indítás nem érvényes állapotban van. Lehet, hogy már el lett indítva, végrehajtva vagy megszakítva, vagy olyan módon hozták létre, amely nem támogatja a közvetlen ütemezést.
A Task példány el lett adva.
Az ütemező nem tudta várólistára helyezni ezt a feladatot.
Megjegyzések
Egy tevékenység csak egyszer indítható el és futtatható. A tevékenységek második alkalommal történő ütemezésére tett kísérletek kivételt eredményeznek.
A tevékenységműveletek által okozott kivételek kezelésével kapcsolatos információkért lásd a Kivételkezelés című témakört.