【问题标题】:Is it possible to detect within a .Net program that it is being stopped/stepped through in the debugger?是否可以在 .Net 程序中检测到它在调试器中被停止/单步执行?
【发布时间】:2011-10-05 18:00:50
【问题描述】:

这是为了解决有时困扰我调试的问题。如果用户在可配置的时间跨度内没有活动,我正在处理的程序会检测用户在 UI 中的不活动(鼠标 + 键盘)和超时。我遇到的问题是,即使我正在调试程序,也会计算用户不活动,并且我希望能够从用户不活动时间中减去我在调试器中花费的时间,所以程序没有时间在我调试的时候出来。

【问题讨论】:

  • 使用 Debugger.IsAttached。它告诉您超时可能触发。否则程序无法观察到中断。

标签: .net debugging timeout


【解决方案1】:

您可以在应用程序的 DEBUG 构建中禁用超时代码。

【讨论】:

  • 非常感谢您的回复。问题是有时我需要调试发生超时后发生的行为,条件被清除,并且我正在下一个[假定的]用户活动期间进行调试。我想一种解决方法是在第一次不活动超时发生后在调试器中设置一个仅限调试的 bool 成员,并防止下一个用户不活动超时触发。
【解决方案2】:

您可以使用编译器指令。

http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx

【讨论】:

  • 请不要发布特定于版本的链接,除非问题是特定于版本的。
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2010-10-15
  • 2013-06-07
  • 2013-12-04
  • 2011-06-12
  • 2019-02-17
  • 2012-08-25
相关资源
最近更新 更多