Task.Start Metódus

Definíció

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.

Lásd még

A következőre érvényes: