【发布时间】:2010-01-25 17:22:10
【问题描述】:
有时我发现自己在调试模式下单步执行应用程序,直到我在某个特定行上单击“单步”,这需要太多时间做某事,占用 100% 的 CPU。在这一点上,我点击了“中断”按钮并尝试找出运行了这么长时间的运行。
问题是,这个应用程序有大量线程在运行,当我点击“Break”时,执行点转到可能只是在“等待”的 GUI 线程。 然后我必须搜索现有的线程(我数了一下——这次是 37 个!)试图找到我正在执行的线程。我必须查看每一个的堆栈,直到找到我要找的那个。
我正在运行的线程是异步调用,因此它在线程池线程上运行。 我想给这个线程一个描述性的名字,并在操作结束时重置它的名字。
问题是,属性Thread.Name 只能设置一次,之后它会给出InvalidOperationException。
有什么建议吗?
哦,是的,我正在运行 VS2005/.NET 2.0,但我也很好奇新版本是否有更好的方法来处理这个问题。
【问题讨论】:
-
为你的头衔点赞! (不是真的,好问题)
标签: c# .net debugging multithreading