visual-studio-2010 - 当非 UI 线程在调试器中停止时,有什么方法可以短暂运行 UI 线程?

标签 visual-studio-2010 debugging

使用 Visual Studio 2010 调试后台线程时,有没有什么好的方法可以让其他线程运行几百毫秒左右,而无需推进位于断点处的线程?等效于在当前行之前插入“Threading.Thread.Sleep(100)”,在那里设置下一条语句,然后点击恢复(但不破解正在调试的代码)?我的数据包记录/显示代码并不像它应有的那样有用,因为调试器通常会在我的代码对数据包起作用的时间和 UI 设法显示它的时间之间遇到断点。

我知道可以进入“线程”窗口,卡住到达断点的线程,点击运行,点击暂停,然后解冻到达断点的线程,但这真的很笨拙。有没有更顺畅的做事方式?

(编辑)我想知道为什么没有回应?我不敢相信我是唯一一个试图调试非 UI 线程的人。

最佳答案

我会使用 在 Visual Studio 中完成操作,例如您概述的操作。

在正确的时间点记录宏( ToolsMacrosRecord TemporaryMacro )然后保存它应该是一件简单的事情。

您可以随时添加图标/键盘快捷键以在以后再次运行宏。

或者甚至调整宏的源代码以确保它完全按照您的需要执行您的操作。

编辑 #1:作为提示,我认为代码看起来有点像这样(未测试):

    Dim t As Thread
    t = DTE.Debugger.CurrentThread
    t.Freeze()
    DTE.Debugger.Go(False)
    Beep()
    Threading.Thread.Sleep(5000)
    Beep()
    DTE.Debugger.Break(True)
    DTE.Debugger.CurrentThread = t;
    t.Thaw()

编辑 #2:
你可能想引用这个:EnvDTE.Debugger

标准进口供您引用:
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

关于visual-studio-2010 - 当非 UI 线程在调试器中停止时,有什么方法可以短暂运行 UI 线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100328/

相关文章:

c++ - 错误 : the global scope has no GetUrl

visual-studio-2010 - 运行负载测试时无法从某些服务器获取性能计数器

java - 调试时忽略 return 语句

android - onAttach(上下文上下文)未被调用

java - 如何定位Android中的崩溃源?

c++ - 在 VC++ 2010 中使用 MSBuild 对文件进行自定义预处理

c++ - VS2010 - 单步黄色箭头处的蓝色小圆圈是什么?

c# - 如何读取故障转储文件(我有源代码和 .pdb 文件)

debugging - 使用 CLion 构建 Python C 扩展 - 如何调试

c++ - preLaunchTask 和 launch 可以在 VSCode 的同一个终端内启动吗?