Debugger.Break() 已经在断点处

Debugger.Break() when already at breakpoint

我喜欢在各种错误情况下调用 Debugger.Break()。我发现这是一种比抛出异常更有效的调试方法。

问题发生在我已经在调试器中崩溃时。如果是这种情况,调试器可以理解地放弃并死掉。在那种情况下,我非常希望不要中断。

有没有办法确定调试器是否已经中断?或者,如果失败,有一种方法可以告诉调试器在中断调用时忽略中断调用?

这个好像可以。我想如果一个人足够努力的话,它可能会失败。

public static bool AtBreakPoint() {
  Task<int> task = Task.Run(() => 2);
  for (int i = 0; i < 1000000; i++) {
    if (task.IsCompleted) {
      return false;
    }
  }
  return true;
}