C# .Net应用程序的默认线程模型

C# .Net应用程序的默认线程模型,c#,.net,multithreading,C#,.net,Multithreading,我是编程新手,所以请原谅我,如果这个问题很愚蠢- 我想知道,在一个普通的C#程序中,我们不在代码中手动创建多线程,整个程序是在一个主线程上运行还是在一个主线程上运行 还有一些其他线程是为执行程序而创建的?来自: 默认情况下,C#程序只有一个线程。但是,辅助线程 可以创建并用于与主服务器并行执行代码 线 简而言之,支持应用程序还需要具有主线程的其他线程 这可以在VisualStudio中进行测试 创建一个简单的控制台应用程序。放置调试点,然后开始调试。一旦应用程序到达该调试点,通过以下方式打开“线

我是编程新手,所以请原谅我,如果这个问题很愚蠢-

我想知道,在一个普通的C#程序中,我们不在代码中手动创建多线程,整个程序是在一个主线程上运行还是在一个主线程上运行 还有一些其他线程是为执行程序而创建的?

来自:

默认情况下,C#程序只有一个线程。但是,辅助线程 可以创建并用于与主服务器并行执行代码 线


简而言之,支持应用程序还需要具有主线程的其他线程

这可以在VisualStudio中进行测试

创建一个简单的控制台应用程序。放置调试点,然后开始调试。一旦应用程序到达该调试点,通过以下方式打开“线程”窗口

Debug -> Windows -> Threads 
您将看到如下内容:


上面的一些线程用于调试器,但大多数应用程序都有主线程、GC(垃圾收集)和终结器线程等。

必须告诉应用程序使用另一个线程。它不会自动发生。根据配置,可能会在额外的线程中运行。C#使用显式并行,这意味着作为程序员,您可以控制线程,并且需要显式启动额外的线程。隐式并行目前并不实用,因为它需要对程序的特定功能有相当深入的了解。通常GC和终结器在不同的线程上运行。如果这就是你要问的。。。查看更多关于。。(
终结器通常在其自己的线程上运行。如果您有一个对象在某种程度上与特定线程有关联