C# プログラミング ガイド
スレッド処理 (C# プログラミング ガイド)

スレッド処理を使用すると、C# プログラムが同時処理を実行し、一度に複数の操作を行うことができるようになります。たとえば、スレッド処理を使用すると、ユーザー入力を監視したり、バックグラウンド タスクを実行したり、複数の入力ストリームを同時に処理したりできます。System.Threading 名前空間により、マルチスレッド プログラミングをサポートするクラスとインターフェイスが用意され、スレッドの新規作成および開始、複数スレッドの同期、スレッドの中断、スレッドの中止などのタスクを従来よりも簡単に実行できます。

メイン スレッドの外部で実行する関数を作成し、新しい Thread オブジェクトでそれを指すようにするだけで、C# コードにスレッド処理を組み込むことができます。C# アプリケーションで新しいスレッドを作成する方法を次のコード例に示します。

C#
System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod);

次のコード例では、C# アプリケーションで新しいスレッドを開始します。

C#
newThread.Start();

マルチスレッド処理によって、応答性やマルチタスクに関連する問題が解決されますが、同時に、リソースの共有や同期という問題が発生することもあります。メインのスレッド スケジュール機構に応じて、スレッドが警告なしに中断され、再開されるためです。詳細については、「スレッドの同期 (C# プログラミング ガイド)」を参照してください。概要については、「スレッドの使用とスレッド処理」を参照してください。

概要

スレッドには、次の特徴があります。

  • スレッドを使用すると、C# プログラムで同時処理を実行できるようになります。

  • .NET Framework の System.Threading 名前空間により、以前よりも簡単にスレッドを使用できます。

  • スレッドは、アプリケーションのリソースを共有します。詳細については、「スレッドの使用とスレッド処理」を参照してください。

関連項目

詳細については、以下のトピックを参照してください。

C# 言語仕様

詳細については、「C# 言語仕様」の次のセクションを参照してください。

  • 3.10 実行順序

  • 8.12 lock ステートメント

  • 10.4.3 Volatile フィールド

  • 10.7.1 フィールドのように使用するイベント

参照

処理手順

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

関連項目

Mutex

概念

C# プログラミング ガイド
ミューテックス
Monitor
インタロックされた操作
AutoResetEvent
デリゲート (C# プログラミング ガイド)

その他の技術情報

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

Page view tracker