Task.Start Metoda

Definice

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.

Viz také

Platí pro