Task.Start 메서드

정의

Task를 시작합니다.Starts the Task.

오버로드

Start()

Task를 시작하고 현재 TaskScheduler에 실행을 예약합니다.Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

Task를 시작하고 지정된 TaskScheduler에 실행을 예약합니다.Starts the Task, scheduling it for execution to the specified TaskScheduler.

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 해당 작업 ID 및 관리 되는 스레드 ID를 표시 한 다음 루프를 실행 하는 개체입니다.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.

작업에서 throw 된 예외 처리에 대 한 자세한 내용은 예외 처리합니다.For information on handling exceptions thrown by task operations, see Exception Handling.

추가 정보

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입니다.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.

작업에서 throw 된 예외 처리에 대 한 자세한 내용은 예외 처리합니다.For information on handling exceptions thrown by task operations, see Exception Handling.

추가 정보

적용 대상