Pab*_*uca 5 .net c# windows multithreading
我正在学习线程。我在 .NET Framework 4.5.2 和 Windows 10 x64 中使用 C#。
我写了一个简单的程序,有两个线程,每个线程有一个大循环:
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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序的最终版本时,在“资源监视器”中我读到它正在运行两个以上的线程。
这让我明白,我们无法真正控制我们的应用程序将如何执行,只能说“我想在比 Y 的同时运行 X”,但没有严格(真正)的数字控制将创建的线程数。那是对的吗?
我想知道这种行为的解释。
当您在不附加调试器且不创建任何其他线程的情况下运行应用程序时,您至少拥有三个线程。
请记住,垃圾收集器在单独的线程上工作。终结器也在单独的线程上工作。本次讨论的主线是微不足道的。
当您看到更多线程时,需要记住,使用 Visual Studio 进行调试时,有与调试相关的线程正在运行。
要测试这一点,请创建一个如下所示的简单程序:
class Program
{
static void Main(string[] args)
{
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
构建您的应用程序,并使用可执行文件运行它(不附加 Visual Studio 调试器),您将在资源监视器中看到正好 3 个线程。
归档时间: |
|
查看次数: |
577 次 |
最近记录: |