Task.Start Task.Start Task.Start Task.Start Method

Определение

Запускает Task.Starts the Task.

Перегрузки

Start() Start() Start() Start()

Запускает задачу Task, планируя ее выполнение в текущем планировщике TaskScheduler.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler)

Запускает задачу Task, планируя ее выполнение в заданном планировщике TaskScheduler.Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start() Start() Start() Start()

Запускает задачу Task, планируя ее выполнение в текущем планировщике 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 ()

Исключения

Экземпляр Task удален.The Task instance has been disposed.

Задача Task не находится в допустимом состоянии для запуска.The Task is not in a valid state to be started. Возможно, она уже запущена, выполнена или отменена, или она была создана способом, не поддерживающим прямое планирование.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Примеры

В следующем примере вызывается Task(Action) конструктор для создания нового Task объект, который отображает свою задачу, идентификатор и идентификатор управляемого потока, а затем выполняет цикл.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. Затем он вызывает Start метод для выполнения задачи.It then calls the Start method to execute the task. Так как это консольное приложение, вызов Wait метод необходим запретить приложению завершение работы до завершения выполнения задачи.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

Комментарии

Задача может запускаются и выполняются только один раз.A task may be started and run only once. Любые попытки запланировать задачу во второй раз приведет к исключение.Any attempts to schedule a task a second time will result in an exception.

Start Позволяет выполнять задачу, которая будет создана путем вызова одного из Task конструкторы.The Start is used to execute a task that has been created by calling one of the Task constructors. Как правило это делается, если вам нужно отделить Создание задачи от ее выполнения, например когда позволяет выполнять задачи, которые вы создали.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. Для более распространенный случай, в котором не требуется разделения задач при создании экземпляра выполнения, рекомендуется вызывать перегрузку Task.Run или 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.

Дополнительные сведения об обработке исключений, создаваемых операциями задач см. в разделе обработка исключений.For information on handling exceptions thrown by task operations, see Exception Handling.

Дополнительно

Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler) Start(TaskScheduler)

Запускает задачу Task, планируя ее выполнение в заданном планировщике 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)

Параметры

scheduler
TaskScheduler TaskScheduler TaskScheduler TaskScheduler

Планировщик TaskScheduler, с которым нужно связать и в котором нужно выполнить данную задачу.The TaskScheduler with which to associate and execute this task.

Исключения

Аргумент scheduler имеет значение null.The scheduler argument is null.

Задача Task не находится в допустимом состоянии для запуска.The Task is not in a valid state to be started. Возможно, она уже запущена, выполнена или отменена, или она была создана способом, не поддерживающим прямое планирование.It may have already been started, executed, or canceled, or it may have been created in a manner that doesn't support direct scheduling.

Экземпляр Task удален.The Task instance has been disposed.

Планировщику не удалось поставить эту задачу в очередь.The scheduler was unable to queue this task.

Комментарии

Задача может только запускаются и выполняются только один раз.A task may only be started and run only once. Любые попытки запланировать задачу во второй раз приведет к исключение.Any attempts to schedule a task a second time will result in an exception.

Дополнительные сведения об обработке исключений, создаваемых операциями задач см. в разделе обработка исключений.For information on handling exceptions thrown by task operations, see Exception Handling.

Дополнительно

Применяется к