スレッド化と非同期プログラミングを使用すると、アプリは UI をブロックすることなく、並列スレッドで非同期的に作業を実行できます。
アプリでは、スレッド プールを使用して、並列スレッドで非同期的に作業を実行できます。 スレッド プールは一連のスレッドを管理し、キューを使用して、使用可能になったときに作業項目をスレッドに割り当てます。 スレッド プールは、UI をブロックせずに拡張作業を実行するために使用できるため、Windows ランタイムで使用できる非同期プログラミング パターンに似ていますが、スレッド プールでは非同期プログラミング パターンよりも制御が多く、複数の作業項目を並列で完了するために使用できます。 スレッド プールを使用すると、次のことができます。
- 作業項目を送信し、その優先度を制御し、作業項目を取り消します。
- タイマーと定期的なタイマーを使用して作業項目をスケジュールします。
- 重要な作業項目のリソースを確保します。
- 名前付きイベントとセマフォに応答して作業項目を実行します。
スレッド プールは、スレッドの作成と破棄のオーバーヘッドを削減するため、スレッドの管理の効率が向上します。 複数の CPU コア間でスレッドを最適化するためのアクセス権を持ち、アプリ間とバックグラウンド タスクの実行時にスレッド リソースのバランスを取ることができます。 組み込みのスレッド プールを使用すると便利です。スレッド管理の仕組みではなく、タスクを実行するコードを記述することに重点を置いているためです。
| トピック | Description |
|---|---|
| スレッド プールを使用するためのベスト プラクティス | スレッド プールを操作するためのベスト プラクティス。 |
| C# または Visual Basic で非同期 API を呼び出す | Windows アプリで C# またはVisual Basicで非同期 API を使用する方法。 |
| 定期的な作業項目を作成する | 定期的に繰り返される作業項目を作成する方法。 |
| スレッド プールに作業項目を送信する | スレッド プールに作業項目を送信して、別のスレッドで作業を行う方法。 |
| タイマーを使用して作業項目を送信する | タイマーが経過した後に実行される作業項目を作成する方法。 |
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Windows developer