Windows.System.Threading 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アプリケーションがスレッド プールを使用して作業項目を実行できるようにします。
スレッド プールには、並列で実行できる作業項目にアプリケーションで使用できるワーカー スレッドのプールが用意されています。 スレッド プールはスレッドの有効期間を管理し、スレッドが使用可能になったときに作業項目をスケジュールするため、スレッド プールの使用は個々のスレッドを作成するよりも簡単で効率的です。
作業項目は非同期的に実行され、任意の順序で実行できるため、時間がかかり、互いの出力に依存しない作業項目にはスレッド プールを使用することをお勧めします。 作業項目を作成するには、 RunAsync メソッドを呼び出します。 作業項目はスレッド プールのキューに追加され、スレッドが使用可能になるまで維持されます。 スレッドが使用可能になると、スレッド プールは作業項目に関連付けられている WorkItemHandler デリゲートを呼び出し、作業項目を実行します。
スレッド プールは、スレッドが使用可能になるとすぐに作業項目をスケジュールするため、アイテムはすぐに実行される可能性があります。 一定の時間が経過した後に作業項目を実行する場合は、タイマーを使用します。 タイマーを作成し、そのタイムアウト値を指定するには、 CreateTimer メソッドを呼び出します。 タイマーは作成されるとすぐにカウントダウンが開始されるため、開始する必要はありません。 タイマーの有効期限が切れると、スレッド プールはタイマーの TimerElapsedHandler デリゲートを 呼び出します。
作業項目を定期的に複数回実行する場合は、 CreatePeriodicTimer メソッドを使用して定期的なタイマーを作成します。 定期的なタイマーは、有効期限が切れるたびにリセットされ、キャンセルするまでアクティブなままです。
イベントまたはセマフォが通知されるまで作業項目を待機する場合、または事前に割り当てられた作業項目を作成する場合は、「 Windows.System.Threading.Core」を参照してください。
スレッド プールの使用方法を示すコード例については、「スレッド プールの サンプル」を参照してください。
Note
ThreadPool API は、デスクトップアプリと UWP アプリでサポートされています。
クラス
ThreadPool |
スレッド プールへのアクセスを提供します。 スレッド プールの使用に関する詳細なガイダンスについては、「 スレッドと非同期プログラミング 」を参照してください。
Note ThreadPool API は、デスクトップアプリと UWP アプリでサポートされています。 |
ThreadPoolTimer |
CreateTimer または CreatePeriodicTimer で作成されたタイマーを表します。 Note ThreadPool API は、デスクトップアプリと UWP アプリでサポートされています。 |
列挙型
WorkItemOptions |
作業項目の実行方法を指定します。 |
WorkItemPriority |
スレッド プール内の他の作業項目に対する作業項目の優先度を指定します。 |
代理人
TimerDestroyedHandler |
CreateTimer または CreatePeriodicTimer で作成されたタイマーが完了したときに呼び出されるメソッドを表します。 |
TimerElapsedHandler |
CreateTimer または CreatePeriodicTimer で作成されたタイマーの有効期限が切れたときに呼び出されるメソッドを表します。 |
WorkItemHandler |
作業項目の実行時に呼び出されるメソッドを表します。 |