エクスポート (0) 印刷
すべて展開
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Task クラス

2013/12/12

非同期操作を表します。

Namespace:  System.Threading.Tasks
アセンブリ:  mscorlib (mscorlib.dll 内)

public class Task : IAsyncResult

Task 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドTask(Action)指定したアクションで新しい Task を初期化します。
パブリック メソッドTask(Action, CancellationToken)指定したアクションと CancellationToken で新しい Task を初期化します。
パブリック メソッドTask(Action, TaskCreationOptions)指定したアクションと作成オプションで新しい Task を初期化します。
パブリック メソッドTask(Action<Object>, Object)指定したアクションと状態で新しい Task を初期化します。
パブリック メソッドTask(Action, CancellationToken, TaskCreationOptions)指定したアクションと作成オプションで新しい Task を初期化します。
パブリック メソッドTask(Action<Object>, Object, CancellationToken)指定したアクション、状態、およびオプションで新しい Task を初期化します。
パブリック メソッドTask(Action<Object>, Object, TaskCreationOptions)指定したアクション、状態、およびオプションで新しい Task を初期化します。
パブリック メソッドTask(Action<Object>, Object, CancellationToken, TaskCreationOptions)指定したアクション、状態、およびオプションで新しい Task を初期化します。
このページのトップへ

  名前説明
パブリック プロパティAsyncStateTask が作成されたときに渡される状態オブジェクトを取得します。渡されなかった場合は null。
パブリック プロパティCreationOptionsこのタスクの作成に使用される TaskCreationOptions を取得します。
パブリック プロパティ静的メンバーCurrentId現在実行中の Task の一意の ID を返します。
パブリック プロパティExceptionTask が途中で終了する原因となった AggregateException を取得します。Task が正常に完了した場合、または例外がスローされていない場合は、null が返されます。
パブリック プロパティ静的メンバーFactoryTask インスタンスおよび Task<TResult> インスタンスを作成するためのファクトリ メソッドにアクセスできるようにします。
パブリック プロパティIdこの Task インスタンスの一意の ID を取得します。
パブリック プロパティIsCanceledこの Task インスタンスの実行が取り消されることによって完了したかどうかを示す値を取得します。
パブリック プロパティIsCompletedこの Task が完了したかどうかを示す値を取得します。
パブリック プロパティIsFaultedハンドルされない例外が発生したことが原因で Task が完了したかどうかを示す値を取得します。
パブリック プロパティStatusこのタスクの TaskStatus を取得します。
このページのトップへ

  名前説明
パブリック メソッドConfigureAwaitこの Task を待機するために使用される awaiter を構成します。
パブリック メソッドContinueWith(Action<Task>)ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task>, CancellationToken)ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task>, TaskContinuationOptions)指定した TaskContinuationOptions に従って実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task>, TaskScheduler)ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task, Object>, Object)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task, Object>, Object, CancellationToken)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task, Object>, Object, TaskContinuationOptions)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task, Object>, Object, TaskScheduler)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)指定した TaskContinuationOptions に従って実行する継続タスクを作成します。
パブリック メソッドContinueWith(Action<Task, Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, TResult>)ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, TResult>, CancellationToken)ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, TResult>, TaskContinuationOptions)continuationOptions で指定した条件に従って実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, TResult>, TaskScheduler)ターゲットの Task が完了したときに非同期に実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, Object, TResult>, Object)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, Object, TResult>, Object, CancellationToken)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, Object, TResult>, Object, TaskContinuationOptions)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, Object, TResult>, Object, TaskScheduler)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)continuationOptions で指定した条件に従って実行する継続タスクを作成します。
パブリック メソッドContinueWith<TResult>(Func<Task, Object, TResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)ターゲットの Task が完了したときに実行する継続タスクを作成します。
パブリック メソッド静的メンバーDelay(Int32)遅延時間後に完了するタスクを作成します。
パブリック メソッド静的メンバーDelay(TimeSpan)遅延時間後に完了するタスクを作成します。
パブリック メソッド静的メンバーDelay(Int32, CancellationToken)遅延時間後に完了するタスクを作成します。
パブリック メソッド静的メンバーDelay(TimeSpan, CancellationToken)遅延時間後に完了するタスクを作成します。
パブリック メソッドEquals(Object)指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalizeObject がガベージ コレクションで再利用される前に、Object がリソースを解放して他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。)
パブリック メソッド静的メンバーFromResult<TResult>指定した結果で正常に完了した Task<TResult> を作成します。
パブリック メソッドGetAwaiterこの Task を待機するために使用される awaiter を取得します。
パブリック メソッドGetHashCode特定の型のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
パブリック メソッド静的メンバーRun(Action)ThreadPool 上で実行するように指定した作業をキューに配置し、その作業のタスク ハンドルを返します。
パブリック メソッド静的メンバーRun(Func<Task>)ThreadPool 上で実行するように指定した作業をキューに配置し、function によって返されたタスクのプロキシを返します。
パブリック メソッド静的メンバーRun(Action, CancellationToken)ThreadPool 上で実行するように指定した作業をキューに配置し、その作業のタスク ハンドルを返します。
パブリック メソッド静的メンバーRun(Func<Task>, CancellationToken)ThreadPool 上で実行するように指定した作業をキューに配置し、function によって返されたタスクのプロキシを返します。
パブリック メソッド静的メンバーRun<TResult>(Func<Task<TResult>>)ThreadPool 上で実行するように指定した作業をキューに配置し、function によって返された Task(TResult) のプロキシを返します。
パブリック メソッド静的メンバーRun<TResult>(Func<TResult>)ThreadPool 上で実行するように指定した作業をキューに配置し、その作業の Task(TResult) ハンドルを返します。
パブリック メソッド静的メンバーRun<TResult>(Func<Task<TResult>>, CancellationToken)ThreadPool 上で実行するように指定した作業をキューに配置し、function によって返された Task(TResult) のプロキシを返します。
パブリック メソッド静的メンバーRun<TResult>(Func<TResult>, CancellationToken)ThreadPool 上で実行するように指定した作業をキューに配置し、その作業の Task(TResult) ハンドルを返します。
パブリック メソッドRunSynchronously()現在の TaskSchedulerTask を同期的に実行します。
パブリック メソッドRunSynchronously(TaskScheduler)指定した TaskSchedulerTask を同期的に実行します。
パブリック メソッドStart()現在の TaskSchedulerTask の実行をスケジュールし、それを開始します。
パブリック メソッドStart(TaskScheduler)指定した TaskScheduler に対して Task の実行をスケジュールし、それを開始します。
パブリック メソッドToString現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッドWait()Task の実行が完了するまで待機します。
パブリック メソッドWait(CancellationToken)Task の実行が完了するまで待機します。
パブリック メソッドWait(Int32)Task の実行が完了するまで待機します。
パブリック メソッドWait(TimeSpan)Task の実行が完了するまで待機します。
パブリック メソッドWait(Int32, CancellationToken)Task の実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAll(Task[])指定したすべての Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAll(Task[], Int32)指定したすべての Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAll(Task[], CancellationToken)指定したすべての Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAll(Task[], TimeSpan)指定したすべての Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAll(Task[], Int32, CancellationToken)指定したすべての Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAny(Task[])指定したいずれかの Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAny(Task[], Int32)指定したいずれかの Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAny(Task[], CancellationToken)指定したいずれかの Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAny(Task[], TimeSpan)指定したいずれかの Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWaitAny(Task[], Int32, CancellationToken)指定したいずれかの Task オブジェクトの実行が完了するまで待機します。
パブリック メソッド静的メンバーWhenAll(IEnumerable<Task>)指定したすべてのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAll(Task[])指定したすべてのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAll<TResult>(IEnumerable<Task<TResult>>)指定したすべてのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAll<TResult>(Task<TResult>[])指定したすべてのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAny(IEnumerable<Task>)指定したいずれかのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAny(Task[])指定したいずれかのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAny<TResult>(IEnumerable<Task<TResult>>)指定したいずれかのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーWhenAny<TResult>(Task<TResult>[])指定したいずれかのタスクが完了したときに完了するタスクを作成します。
パブリック メソッド静的メンバーYield待機したときに現在のコンテキストに非同期に戻る awaitable タスクを作成します。
このページのトップへ

  名前説明
パブリック拡張メソッドAsAsyncAction開始タスクを表す Windows ランタイム 非同期アクションを返します。 (WindowsRuntimeSystemExtensions によって定義されています。)
このページのトップへ

  名前説明
明示的なインターフェイスの実装プライベート プロパティIAsyncResult.AsyncWaitHandleタスクの完了を待機するために使用できる WaitHandle を取得します。
明示的なインターフェイスの実装プライベート プロパティIAsyncResult.CompletedSynchronously操作が同期的に完了したかどうかを示す値を取得します。
このページのトップへ

Task インスタンスは、さまざまな方法で作成されます。最も一般的なアプローチは、タスクの種類の Factory プロパティを使用して、いくつかの目的のタスクを作成するために使用できる TaskFactory インスタンスを取得することです。たとえば、アクションを実行する Task を作成するには、ファクトリの StartNew メソッドを使用できます。

// C#
var t = Task.Factory.StartNew(() => DoAction());

' Visual Basic
 Dim t = Task.Factory.StartNew(Function() DoAction())

この例より完全なコード例については、「[458b5e69-5210-45e5-bc44-3888f86abd6f]」を参照してください。

Task クラスは、タスクを初期化してその実行をスケジュールしないコンストラクターも提供します。パフォーマンス上の理由から、TaskFactory の StartNew メソッドが計算タスクを作成およびスケジュールするために優先される機構ですが、作成とスケジューリングを分離する必要があるシナリオでは、コンストラクターを使用してから、タスクの Start メソッドを使用して、後で実行するようにタスクをスケジュールすることができます。

値を返す操作の場合は、Task<TResult> クラスを使用する必要があります。

デバッガーの開発者向け

カスタム デバッガーを実装する開発者の場合は、タスクのいくつかの内部およびプライベート メンバーが便利なことがあります (これらはリリースごとに変わります)。Int32 m_taskId フィールドは、Id プロパティのバッキング ストアとして機能しますが、デバッガーから直接このフィールドにアクセスする方が、プロパティの getter メソッドを通じて同じ値にアクセスする (s_taskIdCounter Int32 カウンターを使用して、タスクの次に使用可能な ID を取得します) よりも効率的な場合があります。同様に、Int32 m_stateFlags フィールドには、タスク現在のライフ サイクル段階についての情報が格納されます。この情報には、Status プロパティを通じてもアクセスできます。m_action System.Object フィールドにはタスクのデリゲートへの参照が格納され、m_stateObject System.Object フィールドには開発者がタスクに渡す非同期状態が格納されます。最後に、スタック フレームを解析するデバッガーの場合、InternalWait メソッドはタスクが待機操作に入るときの潜在的なマーカーとして機能します。

次の例に、TaskFactory.StartNew メソッドを使用してタスクを開始する方法を示します。

Windows Phone OS

サポート: 8.0

Task のすべてのメンバーはスレッド セーフであり、複数のスレッドから同時に使用できます。

表示:
© 2015 Microsoft