スレッド処理 (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 フィールドのように使用するイベント

参照

処理手順

Monitorによる同期化の技術サンプル

待機による同期化の技術サンプル

概念

C# プログラミング ガイド

ミューテックス

Monitor

インタロックされた操作

AutoResetEvent

参照

Thread

Mutex

デリゲート (C# プログラミング ガイド)

その他の技術情報

[HOWTO] Visual C# .NET を使用してマルチスレッド環境で共有リソースへのアクセスを同期する方法