スレッド (C# Programming Guide) を使用

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

既定は、C# プログラム持ちます 1 つのスレッド。 このスレッドを起動し、Main メソッドで終了、プログラムでコードが実行されます。 Main--によって実行されるすべてコマンド直接または間接的--は行わ既定またはプライマリ スレッドによってれ Main を返す場合、このスレッドが終了します。 ただし、補助スレッドは作成できために使用、プライマリ スレッドに並列処理でコードを実行します。 これらのスレッド多くの場合、ワーカー スレッド と呼びます。

ワーカー スレッドをプライマリ スレッドを拘束せずに時間がかかるまたは時間の重要なタスクを実行するためです。 たとえば、ワーカー スレッドは多くの場合、アプリケーションで使用サーバーを完了する前の要求の待機せずに着信要求を満たします。 ワーカー スレッドは、"背景"の実行にも使用されます。 デスクトップ アプリケーションでタスクのメイン スレッド-ユーザー インターフェイス要素をドライブ-はユーザーの操作に応答するようです。

マルチスレッドはスループットと応答に関する問題を解決がもデッドロックなどのリソースの共有に関する問題を導入して競合条件ことができます。 複数のスレッドはファイル ハンドル、ネットワーク接続などの別のリソースが必要なタスクに最適です。 単一のリソースに複数のスレッドを割り当てる同期の問題が発生する可能性あり複数のスレッドを使用しての目的は、他のスレッドを待っているときによくブロックされたスレッドが defeats。

一般的な戦略は、時間のかかる作業を実行するワーカー スレッドまたは他のスレッドで使用されるリソースの多く必要としない時間が重要なタスクを使用します。 当然、複数のスレッド、プログラムで一部のリソースがアクセスする必要があります。 名前、これらの場合、System.Threading 空間クラスが用意されていますのスレッドの同期。 これらのクラスには、MutexMonitorInterlockedAutoResetEvent、および ManualResetEvent が含まれます。

一部またはすべてのこれらのクラス使用して、複数のスレッドがいくつかのサポートの活動を同期するマルチスレッド C# 言語ではサポートされています。 たとえば、C# ロック Statement には Monitor の暗黙的なを使用して同期機能が用意されています。

次のトピックでは、一般的なマルチスレッド方法を示します。

関連項目

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

参照

処理手順

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

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

参照

Thread

Mutex

概念

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

Monitor

インタロックされた操作

AutoResetEvent

その他の技術情報

マネージ スレッド処理

スレッドの使用とスレッド処理

スレッド処理のサンプル