コンポーネントのマルチスレッド

更新 : 2007 年 11 月

BackgroundWorker コンポーネントは、一部のスレッド処理機能を System.Threading 名前空間に実装します。BackgroundWorker コンポーネントを使用すると、マルチスレッド機能を簡単に実装できます。詳細については、「BackgroundWorker コンポーネントの概要」を参照してください。

"マルチスレッド" または "フリー スレッド" とは、複数のスレッドの処理を同時に実行するアプリケーションの機能です。マルチスレッド アプリケーションの例として、1 つ目のスレッドでユーザーの入力を受け取り、2 つ目のスレッドで多様で複雑な計算を実行し、3 つ目のスレッドでデータベースを更新するプログラムがあります。シングルスレッド アプリケーションでは、計算またはデータベースの更新が終わるまでユーザーが待機するアイドル時間が必要です。マルチスレッド アプリケーションでは、ユーザーの時間を浪費しないように、計算や更新などのプロセスはバックグラウンドで実行されます。

マルチスレッドは、コンポーネント プログラミングの強力なツールとなります。マルチスレッドのコンポーネントを記述することにより、バックグラウンドで複雑な計算を実行する一方で、ユーザーの入力に応答できるようにユーザー インターフェイス (UI) を解放したままにするコンポーネントを作成できます。

マルチスレッドは強力なツールですが、正しく適用することが難しい面もあります。マルチスレッド コードが正しく実装されないと、パフォーマンスが低下するだけでなく、アプリケーションがフリーズすることもあります。マルチスレッド プログラミングについて、いくつかの考慮事項と最良の実践方法を以下のトピックで紹介します。

.NET Framework には、コンポーネントでマルチスレッド処理を行うための方法がいくつか用意されています。1 つは、System.Threading 名前空間の機能を使用する方法です。もう 1 つは、イベント ベースの非同期パターンを使用する方法です。BackgroundWorker コンポーネントは非同期パターンの実装です。コンポーネントにカプセル化された高度な機能を簡単に使用できます。

このセクションの内容

参照

  • BackgroundWorker クラス
    別個の専用スレッドで操作を実行できます。

  • Thread
    .NET Framework のリファレンスの構文およびメンバについての情報を提供します。

関連するセクション

Topic Location
スレッド処理のサンプル C# サンプル アプリケーション
スレッド処理のサンプル C# サンプル アプリケーション

参照

その他の技術情報

コンポーネントの作成

非同期プログラミングのデザイン パターン