Visual studio 2010 当非UI线程在调试器中停止时,有没有办法短暂运行UI线程?

Visual studio 2010 当非UI线程在调试器中停止时,有没有办法短暂运行UI线程?,visual-studio-2010,debugging,Visual Studio 2010,Debugging,在使用VisualStudio2010调试后台线程时,有没有什么好方法可以让其他线程运行几百毫秒左右,而不推进位于断点的线程?等效于在当前行之前插入“Threading.Thread.Sleep(100)”,在那里设置下一个语句,然后点击resume(但不破坏正在调试的代码)?我的数据包日志记录/显示代码并没有发挥应有的作用,因为调试器通常会在我的代码对数据包执行操作和UI成功显示数据包之间遇到断点 我知道可以进入Threads窗口,冻结到达断点的线程,点击run,点击pause,然后解冻到达断

在使用VisualStudio2010调试后台线程时,有没有什么好方法可以让其他线程运行几百毫秒左右,而不推进位于断点的线程?等效于在当前行之前插入“Threading.Thread.Sleep(100)”,在那里设置下一个语句,然后点击resume(但不破坏正在调试的代码)?我的数据包日志记录/显示代码并没有发挥应有的作用,因为调试器通常会在我的代码对数据包执行操作和UI成功显示数据包之间遇到断点

我知道可以进入Threads窗口,冻结到达断点的线程,点击run,点击pause,然后解冻到达断点的线程,但是这真的很笨拙。有没有更顺畅的方法来做事


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

我会在Visual Studio中使用宏来完成您概述的操作

只需在正确的时间点记录宏(
工具
记录临时宏
),然后保存即可

始终可以添加图标/键盘快捷键,以便稍后再次运行宏

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

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

编辑#2: 您可能需要参考以下内容:

供您参考的标准导入:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics

我应该如何进行宏操作?它必须冻结当前线程并运行其他线程一段时间,然后解冻当前线程。如果我手动执行操作,我可以看到哪个线程是当前线程并冻结该线程,但我不知道有任何“冻结当前线程”命令,也不知道有任何命令会导致宏在其他线程运行一定时间时等待。周一,我将在宏录制过程中测试冻结/解冻线程,以查看录制的内容,但我不确定可以录制哪些命令来实现所需的结果,而不依赖于为哪些线程分配了哪些ID。顺便说一句,如果我尝试在即时窗口中执行“Threading.Thread.Sleep(100)”,但在运行时所有线程都被冻结。谢谢你的帮助,我会在周一告诉你发生了什么。@Dean Taylor:谢谢。我不认为我自己会明白这一点;什么是DTE?有什么地方我可以找到更多关于它的信息吗?@supercat添加了Visual Studio宏的标准导入列表和调试器接口的MSDN文档参考。@Dean Taylor:哇,看起来棒极了。我会在周一告诉你结果如何。
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics