この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Threading Objects and Features

 

.NET Framework には、マルチスレッド アプリケーションの作成と管理に役立つ多くのオブジェクトが用意されています。 マネージ スレッドは、Thread クラスによって表されます。 ThreadPool クラスを使用すると、マルチスレッドのバックグラウンド タスクを簡単に作成し、管理できます。 BackgroundWorker クラスは、ユーザー インターフェイスと対話するタスクについてそれと同じことを実現します。 Timer クラスは、指定された間隔でバックグラウンド タスクを実行します。

さらに、.NET Framework Version 2.0 で導入された Semaphore クラスや EventWaitHandle クラスなど、スレッドの活動を同期するクラスも数多くあります。 これらのクラスの機能の比較については、「Overview of Synchronization Primitives」を参照してください。

このセクションの内容

The Managed Thread Pool

ThreadPool クラスについて説明します。このクラスを利用すると、開発者はスレッド管理を意識する必要なしに、スレッドにタスクの実行を要求できます。

Timers

Timer を使用して、指定された時間に呼び出されるデリゲートを指定する方法を説明します。

監視

Monitor クラスを使用してメンバーへのアクセスを同期したり、または独自の種類のスレッド管理を構築したりする方法を説明します。

Wait Handles

WaitHandle クラスについて説明します。このクラスは、イベント待機ハンドル、ミューテックス、およびセマフォ用の抽象基底クラスで、複数の同期イベントを待機できるようにします。

EventWaitHandle, AutoResetEvent, CountdownEvent, ManualResetEvent

通知を行ったり通知を待機したりすることによりスレッドの活動を同期するために使用するマネージ イベント待機ハンドルについて説明します。

Mutexes

オブジェクトへのアクセスの同期、または独自の同期機構の構築を Mutexを使用して行う方法を説明します。

Interlocked Operations

Interlocked クラスを使用して、値の増減と値の格納をアトミックな 1 回の操作で実行する方法を説明します。

Reader-Writer Locks

単一ライター/複数リーダーのセマンティクスを実装するロックを定義します。

Semaphore and SemaphoreSlim

Semaphore オブジェクトについて説明し、このオブジェクトを使用して、制限されたリソースへのアクセスを制御する方法を示します。

Overview of Synchronization Primitives

マネージ スレッドをロックおよび同期するために用意されている .NET Framework のクラスの機能を比較します。

Barrier (.NET Framework)

段階的な操作におけるスレッドの調整のためのバリア パターンを実装する Barrier オブジェクトについて説明します。

SpinLock

特定の下位レベルのシナリオで Monitor クラスの代わりに軽量のプリミティブとして使用できる SpinLock について説明します。

SpinWait

カーネル ベースの待機を開始する前にビジー スピンを実行する下位レベルの同期プリミティブである SpinWait について説明します。

参照

Thread

Thread クラスのリファレンス ドキュメントです。このクラスは、アンマネージ コードから作成されたか、マネージ アプリケーションで作成されたかにかかわらず、マネージ スレッドを表します。

BackgroundWorker

ユーザー インターフェイスと対話し、ユーザー インターフェイス スレッドで生成されるイベントを介して通信するバックグラウンド タスクを有効にします。

関連セクション

非同期ファイル I-O

入力/出力操作が完了した場合にのみ非同期 I/O 完了ポートがスレッド プールを使用して処理を要求する方法について説明します。

Task Parallel Library (TPL)

.NET Framework 4 以降でマルチスレッド プログラミングのための推奨される方法について説明します。

表示: