Task<TResult> コンストラクター

定義

新しい Task<TResult> オブジェクトを初期化します。Initializes a new Task<TResult> object.

オーバーロード

Task<TResult>(Func<TResult>)

指定した関数を使用して新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function.

Task<TResult>(Func<Object,TResult>, Object)

指定した関数と状態で新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function and state.

Task<TResult>(Func<TResult>, CancellationToken)

指定した関数を使用して新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function.

Task<TResult>(Func<TResult>, TaskCreationOptions)

指定した関数と作成オプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function and creation options.

Task<TResult>(Func<Object,TResult>, Object, CancellationToken)

指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified action, state, and options.

Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)

指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified action, state, and options.

Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)

指定した関数と作成オプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function and creation options.

Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)

指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified action, state, and options.

Task<TResult>(Func<TResult>)

指定した関数を使用して新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function.

public:
 Task(Func<TResult> ^ function);
public Task (Func<TResult> function);
new System.Threading.Tasks.Task<'Result> : Func<'Result> -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult))

パラメーター

function
Func<TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

例外

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

次の例では、発行されたブックを表すテキストファイル内の単語数の概算値をカウントします。The following example counts the approximate number of words in text files that represent published books. 各タスクは、ファイルを開いて、その内容全体を非同期に読み取り、正規表現を使用して単語数を計算する役割を担います。Each task is responsible for opening a file, reading its entire contents asynchronously, and calculating the word count by using a regular expression. メソッドTask.WaitAll(Task[])は、すべてのタスクが完了したことを確認するために呼び出されます。The Task.WaitAll(Task[]) method is called to ensure that all tasks have completed before displaying the word count of each book to the console.

オブジェクトのインスタンス化は、この例ではオブジェクトの実行から分離されているので、この例では各ファイルが存在することを確認できます。Object instantiation is separated from object execution in this example so that the example can ensure that each file exists. そうでない場合は、不足しているファイルの名前が表示されます。If they do not, it displays the name of the missing file. それ以外の場合はTask.Start 、メソッドを呼び出して各タスクを起動します。Otherwise, it calls the Task.Start method to launch each task.

using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

public class Example
{
   public static async Task Main()
   {
      string pattern = @"\p{P}*\s+";
      string[] titles = { "Sister Carrie", "The Financier" };
      Task<int>[] tasks = new Task<int>[titles.Length];

      for (int ctr = 0; ctr < titles.Length; ctr++) {
         string s = titles[ctr];
         tasks[ctr] = new Task<int>( () => {
                                   // Number of words.
                                   int nWords = 0;
                                   // Create filename from title.
                                   string fn = s + ".txt";

                                   StreamReader sr = new StreamReader(fn);
                                   string input = sr.ReadToEndAsync().Result;
                                   sr.Close();
                                   nWords = Regex.Matches(input, pattern).Count;
                                   return nWords;
                                } );
      }
      // Ensure files exist before launching tasks.
      bool allExist = true;
      foreach (var title in titles) {
         string fn = title + ".txt";
         if (! File.Exists(fn)) {
            allExist = false;
            Console.WriteLine("Cannot find '{0}'", fn);
            break;
         }   
      }
      // Launch tasks 
      if (allExist) {
         foreach (var t in tasks)
            t.Start();
      
        await Task.WhenAll(tasks);
  
        Console.WriteLine("Word Counts:\n");
        for (int ctr = 0; ctr < titles.Length; ctr++)
           Console.WriteLine("{0}: {1,10:N0} words", titles[ctr], tasks[ctr].Result);
      }   
   }
}
// The example displays the following output:
//       Sister Carrie:    159,374 words
//       The Financier:    196,362 words
Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Threading.Tasks

Module Example
   Public Sub Main()
      Dim pattern As String = "\p{P}*\s+"
      Dim titles() As String = { "Sister Carrie",
                                 "The Financier" }
      Dim tasks(titles.Length - 1) As Task(Of Integer)

      For ctr As Integer = 0 To titles.Length - 1
         Dim s As String = titles(ctr)
         tasks(ctr) = New Task(Of Integer)( Function()
                                   ' Number of words.
                                   Dim nWords As Integer = 0
                                   ' Create filename from title.
                                   Dim fn As String = s + ".txt"

                                   Dim sr As New StreamReader(fn)
                                   Dim input As String = sr.ReadToEndAsync().Result
                                   sr.Close()
                                   nWords = Regex.Matches(input, pattern).Count
                                   Return nWords
                                End Function)
      Next

      ' Ensure files exist before launching tasks.
      Dim allExist As Boolean = True
      For Each title In titles
         Dim fn As String = title + ".txt"
         If Not File.Exists(fn) Then
            allExist = false
            Console.WriteLine("Cannot find '{0}'", fn)
            Exit For
         End If   
      Next
      ' Launch tasks 
      If allExist Then
         For Each t in tasks
            t.Start()
         Next
         Task.WaitAll(tasks)

         Console.WriteLine("Word Counts:")
         Console.WriteLine()
         For ctr As Integer = 0 To titles.Length - 1
         Console.WriteLine("{0}: {1,10:N0} words", titles(ctr), tasks(ctr).Result)
         Next
      End If   
   End Sub
End Module
' The example displays the following output:
'       Sister Carrie:    159,374 words
'       The Financier:    196,362 words

正規表現パターンは\p{P}*\s+ 、0個以上の区切り文字の後に1つ以上の空白文字が続くパターンに一致します。The regular expression pattern \p{P}*\s+ matches zero, one, or more punctuation characters followed by one or more white-space characters. 一致の合計数が、おおよその単語数と同じであることを前提としています。It assumes that the total number of matches equals the approximate word count.

注釈

このコンストラクターは、タスクの作成と開始を分離する必要がある高度なシナリオでのみ使用してください。This constructor should only be used in advanced scenarios where it is required that the creation and starting of the task is separated.

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではなくTaskFactory<TResult>.StartNew(Func<TResult>) 、静的Task.Run<TResult>(Func<TResult>)メソッドとメソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static Task.Run<TResult>(Func<TResult>) and TaskFactory<TResult>.StartNew(Func<TResult>) methods.

API のコンシューマーが待機する必要があるタスクがない場合は、をTaskCompletionSource<TResult>使用する必要があります。If a task with no action is needed just for the consumer of an API to have something to await, a TaskCompletionSource<TResult> should be used.

こちらもご覧ください

Task<TResult>(Func<Object,TResult>, Object)

指定した関数と状態で新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function and state.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state);
public Task (Func<object,TResult> function, object state);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object)

パラメーター

function
Func<Object,TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

アクションによって使用されるデータを表すオブジェクト。An object representing data to be used by the action.

例外

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではTaskFactory<TResult>.StartNew(Func<Object,TResult>, Object)なく、静的メソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) method. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

Task<TResult>(Func<TResult>, CancellationToken)

指定した関数を使用して新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function.

public:
 Task(Func<TResult> ^ function, System::Threading::CancellationToken cancellationToken);
public Task (Func<TResult> function, System.Threading.CancellationToken cancellationToken);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>

パラメーター

function
Func<TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

cancellationToken
CancellationToken

このタスクに割り当てられる CancellationTokenThe CancellationToken to be assigned to this task.

例外

cancellationToken を作成した CancellationTokenSource は既に破棄されています。The CancellationTokenSource that created cancellationToken has already been disposed.

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではなくTaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) 、静的Task.Run<TResult>(Func<TResult>, CancellationToken)メソッドとメソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static Task.Run<TResult>(Func<TResult>, CancellationToken) and TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) methods. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

Task<TResult>(Func<TResult>, TaskCreationOptions)

指定した関数と作成オプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function and creation options.

public:
 Task(Func<TResult> ^ function, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<TResult> function, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of TResult), creationOptions As TaskCreationOptions)

パラメーター

function
Func<TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

creationOptions
TaskCreationOptions

タスクの動作のカスタマイズに使用する TaskCreationOptionsThe TaskCreationOptions used to customize the task's behavior.

例外

creationOptions 引数が、TaskCreationOptions の無効な値を指定しています。The creationOptions argument specifies an invalid value for TaskCreationOptions.

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではTaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions)なく、静的メソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) method. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

Task<TResult>(Func<Object,TResult>, Object, CancellationToken)

指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified action, state, and options.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::CancellationToken cancellationToken);
public Task (Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'Result>

パラメーター

function
Func<Object,TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

関数によって使用されるデータを表すオブジェクト。An object representing data to be used by the function.

cancellationToken
CancellationToken

新しいタスクに割り当てられる CancellationTokenThe CancellationToken to be assigned to the new task.

例外

cancellationToken を作成した CancellationTokenSource は既に破棄されています。The CancellationTokenSource that created cancellationToken has already been disposed.

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではTaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken)なく、静的メソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) method. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)

指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified action, state, and options.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<object,TResult> function, object state, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>
Public Sub New (function As Func(Of Object, TResult), state As Object, creationOptions As TaskCreationOptions)

パラメーター

function
Func<Object,TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

関数によって使用されるデータを表すオブジェクト。An object representing data to be used by the function.

creationOptions
TaskCreationOptions

タスクの動作のカスタマイズに使用する TaskCreationOptionsThe TaskCreationOptions used to customize the task's behavior.

例外

creationOptions 引数が、TaskCreationOptions の無効な値を指定しています。The creationOptions argument specifies an invalid value for TaskCreationOptions.

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではTaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions)なく、静的メソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) method. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)

指定した関数と作成オプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified function and creation options.

public:
 Task(Func<TResult> ^ function, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<TResult> function, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<'Result> * System.Threading.CancellationToken * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>

パラメーター

function
Func<TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

cancellationToken
CancellationToken

新しいタスクに割り当てられる CancellationTokenThe CancellationToken that will be assigned to the new task.

creationOptions
TaskCreationOptions

タスクの動作のカスタマイズに使用する TaskCreationOptionsThe TaskCreationOptions used to customize the task's behavior.

例外

cancellationToken を作成した CancellationTokenSource は既に破棄されています。The CancellationTokenSource that created cancellationToken has already been disposed.

creationOptions 引数が、TaskCreationOptions の無効な値を指定しています。The creationOptions argument specifies an invalid value for TaskCreationOptions.

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではTaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler)なく、静的メソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) method. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)

指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。Initializes a new Task<TResult> with the specified action, state, and options.

public:
 Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state, System::Threading::CancellationToken cancellationToken, System::Threading::Tasks::TaskCreationOptions creationOptions);
public Task (Func<object,TResult> function, object state, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskCreationOptions creationOptions);
new System.Threading.Tasks.Task<'Result> : Func<obj, 'Result> * obj * System.Threading.CancellationToken * System.Threading.Tasks.TaskCreationOptions -> System.Threading.Tasks.Task<'Result>

パラメーター

function
Func<Object,TResult>

タスクで実行するコードを表すデリゲート。The delegate that represents the code to execute in the task. 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。When the function has completed, the task's Result property will be set to return the result value of the function.

state
Object

関数によって使用されるデータを表すオブジェクト。An object representing data to be used by the function.

cancellationToken
CancellationToken

新しいタスクに割り当てられる CancellationTokenThe CancellationToken to be assigned to the new task.

creationOptions
TaskCreationOptions

タスクの動作のカスタマイズに使用する TaskCreationOptionsThe TaskCreationOptions used to customize the task's behavior.

例外

cancellationToken を作成した CancellationTokenSource は既に破棄されています。The CancellationTokenSource that created cancellationToken has already been disposed.

creationOptions 引数が、TaskCreationOptions の無効な値を指定しています。The creationOptions argument specifies an invalid value for TaskCreationOptions.

function 引数が null です。The function argument is null.

function 引数が null です。The function argument is null.

注釈

オブジェクトをTask<TResult>インスタンス化してタスクを起動する最も一般的な方法は、このコンストラクターを呼び出すのではTaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler)なく、静的メソッドを呼び出すことです。Rather than calling this constructor, the most common way to instantiate a Task<TResult> object and launch a task is by calling the static TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) method. このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスクの呼び出しから分離できることです。The only advantage offered by this constructor is that it allows object instantiation to be separated from task invocation.

こちらもご覧ください

適用対象