gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:37:19 24 4
gpt4 key购买 nike

使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com