Task.Start Method

定義

Task を開始します。 Starts the Task.

オーバーロード

Start()

現在の TaskTaskScheduler の実行をスケジュールし、それを開始します。 Starts the Task, scheduling it for execution to the current TaskScheduler.

Start(TaskScheduler)

指定された TaskTaskScheduler の実行をスケジュールし、それを開始します。 Starts the Task, scheduling it for execution to the specified TaskScheduler.

Start()

現在の TaskTaskScheduler の実行をスケジュールし、それを開始します。 Starts the Task, scheduling it for execution to the current TaskScheduler.

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

注釈

タスクの開始し、1 回だけ実行可能性があります。A task may be started and run only once. しようとすると、2 回目のタスクをスケジュールすると、例外が発生します。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)

指定された TaskTaskScheduler の実行をスケジュールし、それを開始します。 Starts the Task, scheduling it for execution to the specified TaskScheduler.

public void Start (System.Threading.Tasks.TaskScheduler scheduler);
パラメーター
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.

注釈

タスクの開始し、1 回だけ実行のみ可能性があります。A task may only be started and run only once. しようとすると、2 回目のタスクをスケジュールすると、例外が発生します。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.

適用対象