启动C#应用程序后,非主线程会做什么?

启动C#应用程序后,非主线程会做什么?,c#,.net,multithreading,visual-studio,C#,.net,Multithreading,Visual Studio,我有一个基本上只运行Main和exits的应用程序(控制台应用程序,Visual Studio 2015),但是如果我在Main中设置一个断点,并查看线程,我会看到以下内容: 我看到这些线程来自不同的进程,为什么显示它们而不显示其他线程?它们与我的C#计划有什么关系?在什么情况下,了解这些线程的作用是有用的?所有Windows应用程序都有一个WndProc消息泵,Windows操作系统可以与您的应用程序通信。此外,所有.net应用程序都至少有一个GC终结器线程来销毁您创建的所有类。vsHost

我有一个基本上只运行Main和exits的应用程序(控制台应用程序,Visual Studio 2015),但是如果我在Main中设置一个断点,并查看线程,我会看到以下内容:


我看到这些线程来自不同的进程,为什么显示它们而不显示其他线程?它们与我的C#计划有什么关系?在什么情况下,了解这些线程的作用是有用的?

所有Windows应用程序都有一个WndProc消息泵,Windows操作系统可以与您的应用程序通信。此外,所有.net应用程序都至少有一个GC终结器线程来销毁您创建的所有类。vsHost是一个VS.net调试器主机,它将应用程序包装在其中,并处理调试和跟踪数据的IO。

它是什么类型的应用程序?控制台应用程序?Windows窗体应用程序?您可以在VS 2015的探查器中查看线程活动。最后两个
线程可能是在程序启动时创建的线程池线程。ID为0的线程做什么(或做过什么)?为什么没有GC终结器线程?@ProgrammerAtWork
0
thread可以编译或启动您的应用程序。一个未命名线程可以是终结器线程,另一个可以是GC线程。