Task<TResult> コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
新しい Task<TResult> オブジェクトを初期化します。
オーバーロード
Task<TResult>(Func<TResult>) |
指定の関数で新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<Object,TResult>, Object) |
指定の関数と状態で新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<TResult>, CancellationToken) |
指定の関数で新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<TResult>, TaskCreationOptions) |
指定の関数と作成オプションを使用して新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken) |
指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions) |
指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions) |
指定の関数と作成オプションを使用して新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions) |
指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。 |
Task<TResult>(Func<TResult>)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定の関数で新しい Task<TResult> を初期化します。
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>
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
例外
function
引数が null
です。
function
引数が null
です。
例
次の例では、発行された書籍を表すテキスト ファイル内の単語のおおよその数をカウントします。 各タスクは、ファイルを開き、その内容全体を非同期的に読み取り、正規表現を使用して単語数を計算します。 メソッドは Task.WaitAll(Task[]) 、各書籍の単語数をコンソールに表示する前に、すべてのタスクが完了したことを確認するために呼び出されます。
この例では、オブジェクトのインスタンス化はオブジェクトの実行から分離されているため、この例では各ファイルが存在することを確認できます。 そうでない場合は、見つからないファイルの名前が表示されます。 それ以外の場合は、 メソッドを Task.Start 呼び出して各タスクを起動します。
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、または複数の句読点文字の後に 1 つ以上の空白文字と一致します。 一致の合計数がおおよその単語数と等しいことを前提としています。
注釈
このコンストラクターは、タスクの作成と開始を分離する必要がある高度なシナリオでのみ使用する必要があります。
このコンストラクターを呼び出す代わりに、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 Task.Run<TResult>(Func<TResult>) メソッドと TaskFactory<TResult>.StartNew(Func<TResult>) メソッドを呼び出すことです。
API のコンシューマーが待機するものを持つためだけにアクションのないタスクが必要な場合は、 TaskCompletionSource<TResult> を使用する必要があります。
こちらもご覧ください
適用対象
Task<TResult>(Func<Object,TResult>, Object)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定の関数と状態で新しい Task<TResult> を初期化します。
public:
Task(Func<System::Object ^, TResult> ^ function, System::Object ^ state);
public Task (Func<object,TResult> function, 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)
パラメーター
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- state
- Object
アクションによって使用されるデータを表すオブジェクト。
例外
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出すのではなく、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
Task<TResult>(Func<TResult>, CancellationToken)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定の関数で新しい Task<TResult> を初期化します。
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>
Public Sub New (function As Func(Of TResult), cancellationToken As CancellationToken)
パラメーター
- function
- Func<TResult>
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- cancellationToken
- CancellationToken
このタスクに割り当てられる CancellationToken。
例外
cancellationToken
を作成した CancellationTokenSource は既に破棄されています。
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出す代わりに、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 Task.Run<TResult>(Func<TResult>, CancellationToken) メソッドと TaskFactory<TResult>.StartNew(Func<TResult>, CancellationToken) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
Task<TResult>(Func<TResult>, TaskCreationOptions)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定の関数と作成オプションを使用して新しい Task<TResult> を初期化します。
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>
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- creationOptions
- TaskCreationOptions
タスクの動作のカスタマイズに使用する TaskCreationOptions。
例外
creationOptions
引数が、TaskCreationOptions の無効な値を指定しています。
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出すのではなく、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 TaskFactory<TResult>.StartNew(Func<TResult>, TaskCreationOptions) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
Task<TResult>(Func<Object,TResult>, Object, CancellationToken)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。
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);
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>
Public Sub New (function As Func(Of Object, TResult), state As Object, cancellationToken As CancellationToken)
パラメーター
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- state
- Object
関数によって使用されるデータを表すオブジェクト。
- cancellationToken
- CancellationToken
新しいタスクに割り当てられる CancellationToken。
例外
cancellationToken
を作成した CancellationTokenSource は既に破棄されています。
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出すのではなく、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
Task<TResult>(Func<Object,TResult>, Object, TaskCreationOptions)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。
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);
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)
パラメーター
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- state
- Object
関数によって使用されるデータを表すオブジェクト。
- creationOptions
- TaskCreationOptions
タスクの動作のカスタマイズに使用する TaskCreationOptions。
例外
creationOptions
引数が、TaskCreationOptions の無効な値を指定しています。
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出すのではなく、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, TaskCreationOptions) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
Task<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定の関数と作成オプションを使用して新しい Task<TResult> を初期化します。
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>
Public Sub New (function As Func(Of TResult), cancellationToken As CancellationToken, creationOptions As TaskCreationOptions)
パラメーター
- function
- Func<TResult>
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- cancellationToken
- CancellationToken
新しいタスクに割り当てられる CancellationToken。
- creationOptions
- TaskCreationOptions
タスクの動作のカスタマイズに使用する TaskCreationOptions。
例外
cancellationToken
を作成した CancellationTokenSource は既に破棄されています。
creationOptions
引数が、TaskCreationOptions の無効な値を指定しています。
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出すのではなく、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 TaskFactory.StartNew<TResult>(Func<TResult>, CancellationToken, TaskCreationOptions, TaskScheduler) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
Task<TResult>(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions)
- ソース:
- Future.cs
- ソース:
- Future.cs
- ソース:
- Future.cs
指定したアクション、状態、およびオプションで新しい Task<TResult> を初期化します。
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);
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>
Public Sub New (function As Func(Of Object, TResult), state As Object, cancellationToken As CancellationToken, creationOptions As TaskCreationOptions)
パラメーター
タスクで実行するコードを表すデリゲート。 関数の実行が完了すると、タスクの Result プロパティが関数の結果値を返すように設定されます。
- state
- Object
関数によって使用されるデータを表すオブジェクト。
- cancellationToken
- CancellationToken
新しいタスクに割り当てられる CancellationToken。
- creationOptions
- TaskCreationOptions
タスクの動作のカスタマイズに使用する TaskCreationOptions。
例外
cancellationToken
を作成した CancellationTokenSource は既に破棄されています。
creationOptions
引数が、TaskCreationOptions の無効な値を指定しています。
function
引数が null
です。
function
引数が null
です。
注釈
このコンストラクターを呼び出すのではなく、オブジェクトをインスタンス化してタスクを Task<TResult> 起動する最も一般的な方法は、静的 TaskFactory<TResult>.StartNew(Func<Object,TResult>, Object, CancellationToken, TaskCreationOptions, TaskScheduler) メソッドを呼び出すことです。 このコンストラクターによって提供される唯一の利点は、オブジェクトのインスタンス化をタスク呼び出しから分離できるようにすることです。
こちらもご覧ください
適用対象
.NET