Task.Start Metoda

Definice

Spustí Task.Starts the Task.

Přetížení

Start()

Spustí Taska naplánuje jeho spuštění na aktuální TaskScheduler.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

Spustí Taska naplánuje spuštění na zadaný TaskScheduler.Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start()

Spustí Taska naplánuje jeho spuštění na aktuální TaskScheduler.Starts the Task, scheduling it for execution to the current TaskScheduler.

public:
 void Start();
public void Start ();
member this.Start : unit -> unit
Public Sub Start ()

Výjimky

Instance Task byla vyřazena.The Task instance has been disposed.

Task není v platném stavu, aby bylo možné spustit.The Task is not in a valid state to be started. Je možné, že už je spuštěná, spuštěná nebo zrušená, nebo se vytvořil způsobem, který nepodporuje přímé plánování.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Příklady

V následujícím příkladu je volána konstruktor Task(Action) pro vytvoření instance nového objektu Task, který zobrazuje ID úlohy a ID spravovaného vlákna a následně spustí smyčku.The following example calls the Task(Action) constructor to instantiate a new Task object that displays its task ID and managed thread ID and then executes a loop. Pak zavolá metodu Start pro provedení úlohy.It then calls the Start method to execute the task. Vzhledem k tomu, že se jedná o konzolovou aplikaci, je nutné volat metodu Wait, aby se zabránilo ukončení aplikace před dokončením provádění úlohy.Since this is a console app, the call to the Wait method is necessary to prevent the app from terminating before the task finishes execution.

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
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

Úlohu lze spustit a spustit pouze jednou.A task may be started and run only once. Jakékoli pokusy o naplánování úlohy podruhé budou mít za následek výjimku.Any attempts to schedule a task a second time will result in an exception.

Start slouží ke spuštění úlohy, která byla vytvořena voláním jednoho z konstruktorů Task.The Start is used to execute a task that has been created by calling one of the Task constructors. Obvykle to provedete, když potřebujete oddělit vytvoření úlohy od jejího spuštění, například když vykonáte podmíněně úlohy, které jste vytvořili.Typically, you do this when you need to separate the task's creation from its execution, such as when you conditionally execute tasks that you've created. Pro častější případ, ve kterém nepotřebujete oddělit vytváření instancí úloh od provedení, doporučujeme, abyste volali přetížení metody Task.Run nebo TaskFactory.StartNew.For the more common case in which you don't need to separate task instantiation from execution, we recommend that you call an overload of the Task.Run or TaskFactory.StartNew method.

Informace o zpracování výjimek vyvolaných operacemi úloh naleznete v tématu zpracování výjimek.For information on handling exceptions thrown by task operations, see Exception Handling.

Viz také

Start(TaskScheduler)

Spustí Taska naplánuje spuštění na zadaný TaskScheduler.Starts the Task, scheduling it for execution to the specified 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

TaskScheduler, ke kterému se má přidružit a spustit Tato úlohaThe TaskScheduler with which to associate and execute this task.

Výjimky

Argument scheduler je null.The scheduler argument is null.

Task není v platném stavu, aby bylo možné spustit.The Task is not in a valid state to be started. Je možné, že už je spuštěná, spuštěná nebo zrušená, nebo se vytvořil způsobem, který nepodporuje přímé plánování.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Instance Task byla vyřazena.The Task instance has been disposed.

Plánovači se nepovedlo zařadit do fronty tuto úlohu.The scheduler was unable to queue this task.

Poznámky

Úlohu lze spustit pouze jednou.A task may only be started and run only once. Jakékoli pokusy o naplánování úlohy podruhé budou mít za následek výjimku.Any attempts to schedule a task a second time will result in an exception.

Informace o zpracování výjimek vyvolaných operacemi úloh naleznete v tématu zpracování výjimek.For information on handling exceptions thrown by task operations, see Exception Handling.

Viz také

Platí pro