C# 为什么我的UI线程ID通常是9或10?
几个月前,我在C# 为什么我的UI线程ID通常是9或10?,c#,.net,C#,.net,几个月前,我在Program.cs中创建的主表单的构造函数中添加了一个print语句 Console.Out.WriteLine("UI Thread ID: " + Thread.CurrentThread.ManagedThreadId); 这通常会导致打印UI线程ID:9的时间占80%,另外19%是10,我见过8可能一两次 为什么UI线程ID通常是这些数字之一?(编辑)在此之前创建了哪些线程?因为它是不同的,所以我认为在它之前的一些线程的创建顺序无关紧要?我认为这只是因为在你的8或9之前
Program.cs
中创建的主表单的构造函数中添加了一个print语句
Console.Out.WriteLine("UI Thread ID: " + Thread.CurrentThread.ManagedThreadId);
这通常会导致打印UI线程ID:9
的时间占80%,另外19%是10
,我见过8
可能一两次
为什么UI线程ID通常是这些数字之一?(编辑)在此之前创建了哪些线程?因为它是不同的,所以我认为在它之前的一些线程的创建顺序无关紧要?我认为这只是因为在你的8或9之前还有一些其他线程
我假设这些线程用于在后台运行的某些.NET framework任务。启动Windows窗体应用程序时,它已经运行了16个线程,其中一些与Visual Studio调试相关,另一些与“.NET系统事件”等相关。@AmitKumarGhosh他不是问这个问题,因为它是自启动以来托管应用程序中的第9个线程,给出或获取几个线程?我怀疑.NET本身在UI启动之前创建了几个线程。垃圾收集器使用的线程可能是您想知道答案的众多原因之一?我可以想象一个人在允许的情况下可以问多少问题“为什么”,但毫无理由地问这些问题是毫无意义的。CLR使用一个非常简单的算法为新线程生成一个新的ManagedId。下一个。禁用Visual Studio宿主进程选项以获得更友好的数字,您现在可能会看到1,第一个。查看“调试>窗口>线程调试器”窗口以查看仍在运行的线程。