是否有可能在Visual Studio 2010中打破所有线程?

时间:2011-03-23 14:31:19

标签: multithreading visual-studio-2010 ide breakpoints

是否有可能破坏Visual Studio 2010 Ultimate中的所有线程?

我的应用程序中的一个线程正在运行TCP代理。当客户端(连接到我的代理)每隔几秒钟没有发送保持活动数据包时,它连接的服务器将断开连接。

所以我需要打破所有其他线程(比如数据包处理),以便我可以编辑该部分而不会断开连接。

这是否可以在没有附加组件的情况下实现?

4 个答案:

答案 0 :(得分:4)

看起来不可能。有关同一问题的先前讨论,请参阅Breaking single thread

答案 1 :(得分:4)

可能有效的一个解决方案是编写一个宏,当你停在BP时,你会调用一个函数来评估一些发送一些保持活动数据包的函数。

E.g。你的宏就像

DTE.Windows.Item(“{ECB7191A-597B-41F5-9843-03A4CF275DDE}”)。激活()'立即窗口 DTE.ExecuteCommand(“Debug.Print”,“KeepAliveFunc()”)

这显然不理想,但如果没有别的帮助......

答案 2 :(得分:1)

当您在调试器中全部中断时,在线程窗口中,右键单击您不想运行的所有线程并选择冻结,然后继续运行,只有您的目标线程将运行。

答案 3 :(得分:1)

可能只是在线程中放置一个while循环,您希望通过计时器暂停,以输出有关文本框上某些变量的数据。然后让按钮在循环之间步进?

只是一个想法。