コンポーネントのマルチスレッド
更新 : 2007 年 11 月
BackgroundWorker コンポーネントは、一部のスレッド処理機能を System.Threading 名前空間に実装します。BackgroundWorker コンポーネントを使用すると、マルチスレッド機能を簡単に実装できます。詳細については、「BackgroundWorker コンポーネントの概要」を参照してください。
"マルチスレッド" または "フリー スレッド" とは、複数のスレッドの処理を同時に実行するアプリケーションの機能です。マルチスレッド アプリケーションの例として、1 つ目のスレッドでユーザーの入力を受け取り、2 つ目のスレッドで多様で複雑な計算を実行し、3 つ目のスレッドでデータベースを更新するプログラムがあります。シングルスレッド アプリケーションでは、計算またはデータベースの更新が終わるまでユーザーが待機するアイドル時間が必要です。マルチスレッド アプリケーションでは、ユーザーの時間を浪費しないように、計算や更新などのプロセスはバックグラウンドで実行されます。
マルチスレッドは、コンポーネント プログラミングの強力なツールとなります。マルチスレッドのコンポーネントを記述することにより、バックグラウンドで複雑な計算を実行する一方で、ユーザーの入力に応答できるようにユーザー インターフェイス (UI) を解放したままにするコンポーネントを作成できます。
マルチスレッドは強力なツールですが、正しく適用することが難しい面もあります。マルチスレッド コードが正しく実装されないと、パフォーマンスが低下するだけでなく、アプリケーションがフリーズすることもあります。マルチスレッド プログラミングについて、いくつかの考慮事項と最良の実践方法を以下のトピックで紹介します。
.NET Framework には、コンポーネントでマルチスレッド処理を行うための方法がいくつか用意されています。1 つは、System.Threading 名前空間の機能を使用する方法です。もう 1 つは、イベント ベースの非同期パターンを使用する方法です。BackgroundWorker コンポーネントは非同期パターンの実装です。コンポーネントにカプセル化された高度な機能を簡単に使用できます。
このセクションの内容
- System.Threading を使用するコンポーネントでのマルチスレッド プログラミング
System.Threading 名前空間を使用したマルチスレッド コンポーネントの作成について説明します。
参照
BackgroundWorker クラス
別個の専用スレッドで操作を実行できます。Thread
.NET Framework のリファレンスの構文およびメンバについての情報を提供します。
関連するセクション
イベント ベースの非同期パターンを使用したマルチスレッド プログラミング
非同期の機能を持つコンポーネントをパッケージ化する標準の方法を説明します。Visual Basic におけるマルチスレッド
Visual Basic でのマルチスレッドの使用に関連するさまざまなトピックへのリンクを示します。マネージ スレッド処理の実施
マネージ スレッド処理機能の使用のガイドラインを示します。
Topic | Location |
---|---|
スレッド処理のサンプル | C# サンプル アプリケーション |
スレッド処理のサンプル | C# サンプル アプリケーション |