Mat*_*sen 33 .net c# multithreading
这个简单的程序从15个线程开始 - 根据计数.有时在它的一生中它会掉落一些,但它们会回来.
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.WriteLine(Process.GetCurrentProcess().Threads.Count);
Thread.Sleep(500);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我期待的过程,只是有一个线程(和我的直觉是由备份这个)
没有调试器,该进程只有(!)4个线程.当然任何CLR的东西都会隐藏在我的进程中?
这有多重要?这个过程真的有那么多线程吗?为什么?
Phi*_*ney 35
尝试在调试器外部运行它(即按Ctrl + F5而不是F5).您应该只看到三个线程 - 主线程,GC线程和终结器线程IIRC.您看到的其他线程是与调试器相关的线程.
Project + Properties,Debugging,untick"启用Visual Studio托管过程".我无法发现它在做什么.当我勾选"启用非托管代码调试"选项,试图让这些线程一眼,便不再上手.没有线索.但我相信这是为了我们的利益:)