8

すべての新しい C# アプリケーションに表示されるスレッドの目的を理解しようとしています。空の Main 関数を使用して新しいコンソール アプリケーションを作成しました。

static void Main(string[] args)
{
}

関数の最後にブレークポイントを配置してから、スレッド ウィンドウを確認しました。

デフォルトのスレッド

8 つのスレッドが表示されることもあれば、7 つのスレッドが表示されることもあります。

これらすべてのスレッドの目的は何か、なぜこのような単純なプロジェクトにそれらが必要なのかを説明できる人はいますか?

4

2 に答える 2

6

簡単に言えば、これらの余分なスレッドは、GC、ファイナライザー、VS、およびデバッガーに関連しています。以下のリンクは、質問に対するより詳細な回答を提供します。

この単純な .NET コンソール アプリにこれほど多くのスレッドがあるのはなぜですか?

于 2013-10-18T13:38:05.047 に答える
2

まず、スレッドとは何かを理解する必要があると思います。

スレッド:

スレッドを使用すると、プログラムで並行処理を実行できるため、一度に複数の操作を実行できます。たとえば、重い画像をアプリケーションにロードし、バックグラウンド タスクを実行し、その時点でファイルへのストリーミングを処理できます。

スレッドを使用しない場合 - アプリケーションに画像を読み込んでいるときに、UI が動かなくなり、画像の読み込みが完了するまで待つだけで他に何もできませんでした。

では、なぜ私たちのアプリケーションは 7 ~ 8 スレッドで開始するのでしょうか?

それでは、どのスレッドがあるか見てみましょう。

デフォルトでは、C# プログラムには 1 つのスレッドがあります。このスレッドは、Main メソッドで開始および終了するプログラム内のコードを実行します。

また、ライフサイクルが終了したときにオブジェクトを強制終了するガベージ コレクター スレッドもあります。

さらに、デバッグのスレッドがいくつかあります。

于 2013-10-18T13:40:57.347 に答える