スレッド化と非同期プログラミング

スレッド化と非同期プログラミングを使用すると、アプリは UI をブロックすることなく、並列スレッドで非同期的に作業を実行できます。

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

  • 作業項目を送信し、その優先度を制御し、作業項目を取り消します。
  • タイマーと定期的なタイマーを使用して作業項目をスケジュールします。
  • 重要な作業項目のリソースを確保します。
  • 名前付きイベントとセマフォに応答して作業項目を実行します。

スレッド プールは、スレッドの作成と破棄のオーバーヘッドを削減するため、スレッドの管理の効率が向上します。 複数の CPU コア間でスレッドを最適化するためのアクセス権を持ち、アプリ間とバックグラウンド タスクの実行時にスレッド リソースのバランスを取ることができます。 組み込みのスレッド プールを使用すると便利です。スレッド管理の仕組みではなく、タスクを実行するコードを記述することに重点を置いているためです。

トピック Description
スレッド プールを使用するためのベスト プラクティス スレッド プールを操作するためのベスト プラクティス。
C# または Visual Basic で非同期 API を呼び出す Windows アプリで C# またはVisual Basicで非同期 API を使用する方法。
定期的な作業項目を作成する 定期的に繰り返される作業項目を作成する方法。
スレッド プールに作業項目を送信する スレッド プールに作業項目を送信して、別のスレッドで作業を行う方法。
タイマーを使用して作業項目を送信する タイマーが経過した後に実行される作業項目を作成する方法。