Visual studio 2008 VS2008在遇到断点时挂起所有线程

Visual studio 2008 VS2008在遇到断点时挂起所有线程,visual-studio-2008,debugging,multithreading,Visual Studio 2008,Debugging,Multithreading,我一定错过了什么。。(我习惯于使用eclipse) 当我遇到断点时,Visual Studio 2008似乎会挂起所有线程-这正常吗?如果是这样,是否有一个选项只挂起断点所在的线程?是,调试器执行此操作完全正常。考虑一下如果不这样会发生什么。调试器显示的任何值在显示时都必须被视为已过期,因为任何其他正在运行的线程都可能会将其下的值更改为过期 我不相信有一种方法可以在不暂停所有线程的情况下进入VisualStudio 正如Jared所说,这是VS中的正常行为。但是,您可以做一些事情来调整行为,比如

我一定错过了什么。。(我习惯于使用eclipse)


当我遇到断点时,Visual Studio 2008似乎会挂起所有线程-这正常吗?如果是这样,是否有一个选项只挂起断点所在的线程?

是,调试器执行此操作完全正常。考虑一下如果不这样会发生什么。调试器显示的任何值在显示时都必须被视为已过期,因为任何其他正在运行的线程都可能会将其下的值更改为过期


我不相信有一种方法可以在不暂停所有线程的情况下进入VisualStudio

正如Jared所说,这是VS中的正常行为。但是,您可以做一些事情来调整行为,比如创建断点条件。我发现了一个例子,其中提到设置断点条件以查找特定线程:

提示:仅当特定线程调用方法时中断:要设置每个线程的断点,您需要使用name属性唯一标识给定名称的特定线程。可以通过创建条件表达式(如“ThreadToStopOn”==thread.CurrentThread.Name)为线程设置条件断点

通过观察变量“myThread”并在值窗口中输入线程的名称值,可以在监视窗口中手动更改线程的名称。如果没有可使用的当前线程变量,则可以使用thread.CurrentThread.Name设置当前线程的名称。Thread类中还有一个私有整数变量,DONT_USE_InternalThread,这对每个线程都是唯一的。您可以使用“线程”窗口访问要停止的线程,并在“监视”窗口中输入thread.CurrentThread.DONT_使用\u InternalThread查看其值,以便创建正确的条件断点表达式

以下是更多关于breakpont条件的文章:


好问题我从来没有想过任何其他行为都是有意义的——但当我处于这个位置时,这将是一个很好的解决方案。我明白了——看起来我必须增加心跳超时时间。。!谢谢