我遇到了 BSODon 在 ping 中间结束调试的错误。
我有几种方法可以在我的 (wpf) 应用程序(我连续 ping)中禁用它,但有时我忘记这样做并出现 BSOD。
我想通过更改全局 AllowRealPinging 变量并在退出调试器之前在回调中休眠 2 秒来解决这个问题,这样我就不会出现 BSOD。
最佳答案
这是 Windows 7 中的一个已知错误,当您终止进程时,您将在 tcpip.sys 中获得错误检查代码为 0x76、PROCESS_HAS_LOCKED_PAGES 的蓝屏死机。最相关反馈文章is here .也包含在 this SO question 中.那里没有很好的答案,唯一已知的解决方法是回退到 4.0 之前的 .NET 版本,它使用另一个不会触发驱动程序错误的 winapi 函数。
在调试时避免 ping 无疑是避免此问题的最佳方法。你想要的方法行不通,你的程序在遇到断点时完全卡住,当你停止调试时咔嚓一声。
最简单的方法是在连接调试器的特定情况下,首先不开始 ping。使用 System.Diagnostic.Debugger.IsAttached 属性在您的代码中检测到这一点。
关于c# - 使用 Ping 时蓝屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756824/