如何在visual studio 2012的调试输出窗口中禁用消息?
线程''(0x2360)已退出,代码为0(0x0)
由于这些消息的数量如此之高,他们会打扰我并隐藏我使用的自定义调试信息Debug.Write.我应该使用红色突出显示我的自定义调试信息吗?
更新:这是不相关的前缀
我安装了早期版本的Prefix.我通过运行新安装程序进行了升级.在VS.NET 2015 Update 3中升级后,我在加载前缀模块时在调试输出窗口中看到这些消息.未加载前缀模块时,不会显示这些消息.
Event 10 was called with 5 argument(s) , but it is defined with 6 paramenter(s).
Event 7 was called with 5 argument(s) , but it is defined with 6 paramenter(s).
Run Code Online (Sandbox Code Playgroud)
这是Prefix或其他一些组件不匹配的问题吗?知道如何解决这个问题吗?我在调试时收到了数百条这样的消息.
2017年5月3日更新:我已经能够确定这些消息的来源.它们起源于.NET Framework内部类System.Threading.Tasks.TPLETWProvider 这两个事件是:
事件7:TaskScheduled事件方法有一个额外的第6个参数int appDomain未使用.
事件10:TaskWaitBegin,它还有一个额外的未使用的int appDomain参数.
当这些方法中的每一个最终调用EventSource.WriteToAllListeners时,将根据传入的数据元素的数量检查方法上的参数.当存在不匹配时,该消息将出现在Visual Studio的输出窗口中.
链接的源代码适用于.NET Framework 4.7.在我的本地版本中,我运行的是.NET 4.6.1(mscorlib,版本= 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089)
我真的很惊讶更多的人没有遇到这个问题.
VS2017中调试窗口中的示例(但在其他VS版本中也很常见):
Event 7 was called with 5 argument(s) , but it is defined with 6 paramenter(s).
Run Code Online (Sandbox Code Playgroud)
查找原因: TPL ETW事件具有导致过多调试器输出的额外参数 从Visual Studio 2015输出窗口过滤自定义消息
但直到更新或类似修复此问题 - 任何解决方法的建议?(代码/工具/ ???)
我真的想让我的调试输出窗口保持工作,而不是用同样的(无用的)消息晃动.
在输出窗口中禁用某些类型的消息没有用,因为它删除了我想要的输出消息.(在调试输出窗口中禁用噪声消息 - visual studio 2012)
还试图找到一个可以过滤的VS扩展,但没有运气.
在这个通道下,VSColorOutput可能用于匹配RegExp,然后将这些消息的颜色更改为与输出窗口中的backround相同的颜色......但这感觉非常讨厌,并且会在输出窗口中给出无限的空白行.