C# &引用;“资源监视器”;显示的线程比我在程序中编写的两个线程多
我正在学习线程。我使用C#和.NETFramework 4.5.2以及Windows10x64 我编写了一个简单的程序,其中有两个线程,每个线程中有一个大循环:C# &引用;“资源监视器”;显示的线程比我在程序中编写的两个线程多,c#,.net,windows,multithreading,C#,.net,Windows,Multithreading,我正在学习线程。我使用C#和.NETFramework 4.5.2以及Windows10x64 我编写了一个简单的程序,其中有两个线程,每个线程中有一个大循环: class Program { static void Main(string[] args) { Thread t = new Thread(foo); t.Start(); for (int i = 0; i < 99999999; i++) {
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(foo);
t.Start();
for (int i = 0; i < 99999999; i++)
{
Console.WriteLine("x");
}
}
static void foo()
{
for (int i = 0; i < 99999999; i++)
{
Console.WriteLine("y");
}
}
}
类程序
{
静态void Main(字符串[]参数)
{
螺纹t=新螺纹(foo);
t、 Start();
对于(int i=0;i<9999999;i++)
{
控制台。写入线(“x”);
}
}
静态void foo()
{
对于(int i=0;i<9999999;i++)
{
控制台。写入线(“y”);
}
}
}
当我运行程序的最终版本时,在“资源监视器”中,我读到它正在运行两个以上的线程
这让我明白,我们不能真正控制应用程序的执行方式,只能说“我想在Y的同时运行X”,但不能严格(真正)控制将要创建的线程数。对吗
我想知道这种行为的解释
这是我刚才解释的图像:
运行应用程序时,如果未连接调试器,也未创建任何附加线程,则至少有三个线程 请记住,垃圾收集器在单独的线程上工作。此外,终结器在单独的线程上工作。在本次讨论中,主线是无关紧要的 当您看到更多线程时,需要记住,在使用VisualStudio进行调试时,会有与调试相关的线程在运行 要测试这一点,请创建一个简单的程序,如下所示:
class Program
{
static void Main(string[] args)
{
Console.ReadKey();
}
}
构建应用程序,并使用可执行文件(未连接Visual Studio调试器)运行它,您将在资源监视器中看到正好3个线程。使用调试器并检查线程窗口如何?