Windows ランタイム アプリでのスレッド プールの利用

Windows ランタイム アプリでのスレッド プールの利用

ここでは、アプリでスレッド プールを使って並列処理を実行する方法を示します。

アプリでは、スレッド プールを使って、並列スレッドで作業を非同期的に実行できます。スレッド プールでは、一連のスレッドを管理し、スレッドが使用可能になるとキューを使って作業項目をそのスレッドに割り当てます。スレッド プールを使うと UI をブロックすることなく広範な作業を実行できるため、スレッド プールは Windows ランタイムで利用できる非同期プログラミング パターンと似ています。ただし、スレッド プールは非同期プログラミング パターンよりも細かく制御でき、これを使って複数の作業項目を並列的に実行できます。スレッド プールを使うと、次のことが可能になります。

  • 作業項目の送信、作業項目の優先度の管理、作業項目の取り消し。

  • タイマーおよび定期タイマーを使った作業項目のスケジュール設定。

  • 重要な作業項目のためのリソースの確保。

  • 指定されたイベントとセマフォに応答した作業項目の実行。

スレッド プールはスレッドの作成と破棄のオーバーヘッドが少ないため、スレッドを別々に管理するよりも効率が高くなります。スレッド プールは OS レベルで実行されるため、アプリ ベースのスレッド管理システムよりも有利です。つまり、複数の CPU コアを使ってスレッドを最適化でき、バックグラウンド タスクが実行されているときに横方向に装着されているアプリ間でスレッド リソースを分配することができます。スレッド管理のしくみよりも、タスクを実行するコードを作成することが主な目的であるので、組み込みスレッド プールを使うと便利です。

このセクションの内容

トピック説明

クイック スタート: スレッド プールへの作業項目の送信

スレッド プールに作業項目を送信することで独立したスレッドで作業を実行する方法について説明します。

タイマーを使って作業項目を送信する方法

タイマーが終了した後に実行される作業項目の作成方法を説明します。

定期的な作業項目を作成する方法

定期的に実行される作業項目の作成方法を説明します。

あらかじめ割り当てられた作業項目を作成して利用する方法

事前に作業項目にリソースを割り当てることで、作業項目の可用性を保証する方法について説明します。

指定されたイベントとセマフォに応答する方法

指定のイベントとセマフォに応答して、スレッド プール作業項目を実行する方法について説明します。

作業項目委任として関数を使う方法

作業項目委任として関数 (および関数オブジェクト) を使う方法について説明します。

スレッド プールを使うためのベスト プラクティス

このトピックでは、スレッド プールを使った操作のベスト プラクティスについて説明します。

 

 

 

表示:
© 2017 Microsoft