スレッド処理 (C# プログラミング ガイド)
更新 : 2007 年 11 月
スレッド処理を使用すると、C# プログラムが同時処理を実行し、一度に複数の操作を行うことができるようになります。たとえば、スレッド処理を使用すると、ユーザー入力を監視したり、バックグラウンド タスクを実行したり、複数の入力ストリームを同時に処理したりできます。System.Threading 名前空間により、マルチスレッド プログラミングをサポートするクラスとインターフェイスが用意され、スレッドの新規作成および開始、複数スレッドの同期、スレッドの中断、スレッドの中止などのタスクを従来よりも簡単に実行できます。
メイン スレッドの外部で実行する関数を作成し、新しい Thread オブジェクトでそれを指すようにすることにより、C# コードにスレッド処理を組み込むことができます。C# アプリケーションで新しいスレッドを作成する方法を次のコード例に示します。
System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod);
次のコード例では、C# アプリケーションで新しいスレッドを開始します。
newThread.Start();
マルチスレッド処理によって、応答性やマルチタスクに関連する問題が解決されますが、同時に、リソースの共有や同期という問題が発生することもあります。機構をスケジュールするメインのスレッドに応じて、スレッドが警告なしに中断され、再開されるためです。詳細については、「スレッドの同期 (C# プログラミング ガイド)」を参照してください。概要については、「スレッドの使用とスレッド処理」を参照してください。
概要
スレッドには、次の特徴があります。
スレッドを使用すると、C# プログラムで同時処理を実行できるようになります。
.NET Framework の System.Threading 名前空間により、以前よりも簡単にスレッドを使用できます。
スレッドは、アプリケーションのリソースを共有します。詳細については、「スレッドの使用とスレッド処理」を参照してください。
関連項目
詳細については、以下のトピックを参照してください。
C# 言語仕様
詳細については、「C# 言語仕様」の次のセクションを参照してください。
3.10 実行順序
8.12 lock ステートメント
10.5.3 Volatile フィールド
10.8.1 フィールドのように使用するイベント