Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的UI线程ID通常是9或10?_C#_.net - Fatal编程技术网

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,第一个。查看“调试>窗口>线程调试器”窗口以查看仍在运行的线程。