【发布时间】:2014-01-16 23:29:35
【问题描述】:
谁能给我解释一下为什么我的项目调试过程中有这么多线程?
我启动我的控制台应用程序 (.net 4.5),我可以看到有以下线程:
[8064][Thread Destroyed]
[5528]<No Name>
[9048]<No Name>
[1760]<No Name>
[6836]vshost.RunParkingWindow
[10200].NET SystemEvents
[9692]Main Thread
当我运行 Parallel.For 3 次迭代时,我得到以下线程:
[0]Thread Ended
[10140]<No Name>
[4464]<No Name>
[5332]<No Name>
[6772]vshost.RunParkingWindow
[8660].NET SystemEvents
[6728]Main Thread
[8580]Worker Thread
[9332]Worker Thread
[9168]Worker Thread
[1336]<No Name>
[9464]<No Name>
我假设 3 个工作线程用于我的 Parallel.For 循环中的 3 次迭代,但是: 为什么线程被销毁,为什么没有线程名称,什么是 RunParkingWindow,为什么某些线程 ID 会发生变化,例如。主线程,为什么我运行 Parallel.For 时会有 2 个额外的 No Name 线程?
【问题讨论】:
-
是什么阻止您查看这些线程的调用堆栈以了解它们在做什么? (可能需要取消选中“工具->选项->调试->“仅我的代码”)
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# multithreading debugging