.net 大海捞针(过程中的线)

.net 大海捞针(过程中的线),.net,multithreading,.net,Multithreading,我在进程中的一个线程正在完全烧掉一个CPU内核。8核,使用12.5%的CPU。看看这个(procexp屏幕截图) 另一件困扰我的事是0x0的起始地址 我试图在VS2008 thread视图提供的列表中找到线程,但是没有一个线程(或者我忽略了)有紧密的循环(没有Sleep())或明确的故障指示 有什么提示吗 个案更新: 在这一点上,我似乎超出了我的代码范围;我将发布一个使用STACK按钮获得的图片,这样你就可以对手头的问题有一些预感 第一种情况 第二种情况(相同的线程,我得到这两个交替) 伙

我在进程中的一个线程正在完全烧掉一个CPU内核。8核,使用12.5%的CPU。看看这个(procexp屏幕截图)

另一件困扰我的事是
0x0的
起始地址

我试图在VS2008 thread视图提供的列表中找到线程,但是没有一个线程(或者我忽略了)有紧密的循环(没有
Sleep()
)或明确的故障指示

有什么提示吗

个案更新:

在这一点上,我似乎超出了我的代码范围;我将发布一个使用STACK按钮获得的图片,这样你就可以对手头的问题有一些预感

第一种情况

第二种情况(相同的线程,我得到这两个交替)


伙计们,我在哪?我确实使用Windows Media,Sockets,

您是否尝试使用Adplus进行挂起转储,并运行!失控通信 WinDbg?这将显示你肯定是什么线程,然后你可以使用!clrstack
为了得到线程aws所做的事情。

哼-在经历了大量的头痛之后,我发现(我应该早点这么做)来自procexp的线程id也可以在visual studio中找到-并且找到了导致问题的线程。这是一个很紧的循环,我用Sleep(10)解决了这个问题。

试着点击右下角的
Stack
按钮,看看它实际上在执行什么代码。或者暂停调试,看看它在哪里停止。这很可能发生在世界上更为著名的部分code@digEmAll当前位置我这样做没有成功:|@Daniel:奇怪,它对我起了很多作用。好的,现在我试着使用一个分析器,看看这个占用大部分处理时间的方法。你还需要获得windows调试符号,以便在你的线程上获得有意义的调用堆栈。。。将其视为一个起点。