C#应用程序中未处理的异常会导致蓝屏死机吗?
答案 0 :(得分:14)
除非您处理非内存资源(如原始内存访问),否则不会。 (在这种情况下,异常不太可能是原因)
.NET异常将被运行时环境捕获。你可以崩溃你的程序而不是操作系统。
根据我的经验,导致BSOD的唯一因素是坏驱动程序和硬件错误。(这当然不是BSOD原因的详尽列表,但这是我看的第一个地方。 )
答案 1 :(得分:3)
BSOD的唯一原因是硬件错误,操作系统错误或驱动程序错误。 .NET代码不能导致BSOD。
答案 2 :(得分:2)
没有;理想情况下,应该无法从C#引起BSOD。
向我们展示导致它的代码,我们会看看是否可以提供帮助。
答案 3 :(得分:2)
答案 4 :(得分:2)
是的,这是可能的,间接的。当您使用System.Management,System.Windows.Media,System.Drawing.Printing,System.IO.Ports等名称空间时,您将使用大量非托管代码。该代码可以发出设备驱动程序调用,这可能会触发设备驱动程序中的错误。接下来是蓝屏。
显然真正的问题不在托管代码中,它是一个糟糕的驱动程序。
但要直接回答这个问题:不,未处理的托管异常不会导致BSOD。
答案 5 :(得分:0)
您可以共享与您的驱动程序交互的代码吗?
无论哪种方式,看起来驱动程序本身都有错误:BSOD是内核中运行的代码(在这种情况下是驱动程序)中未处理的崩溃的结果。