Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 没有任何异常的应用程序崩溃_C#_.net_Multithreading_Directx - Fatal编程技术网

C# 没有任何异常的应用程序崩溃

C# 没有任何异常的应用程序崩溃,c#,.net,multithreading,directx,C#,.net,Multithreading,Directx,我有一个多线程的.NETC#应用程序,它使用Direct3D9/10和XAudio2。(Direct3D仅由一个线程访问,与XAudio2相同。Direct3D不是问题所在,因为错误在DX9或DX10模式下显示,其行为没有任何变化。) 有时候(有些地方随机出现了这个问题),这个应用程序会以一种不太引人注目的方式崩溃。即使应用程序是通过带调试器的VisualStudio启动的,它也会崩溃,不会给出任何类型的异常。(它首先会说“applicationname.svchost.exe已崩溃,等等。是否

我有一个多线程的.NETC#应用程序,它使用Direct3D9/10和XAudio2。(Direct3D仅由一个线程访问,与XAudio2相同。Direct3D不是问题所在,因为错误在DX9或DX10模式下显示,其行为没有任何变化。)

有时候(有些地方随机出现了这个问题),这个应用程序会以一种不太引人注目的方式崩溃。即使应用程序是通过带调试器的VisualStudio启动的,它也会崩溃,不会给出任何类型的异常。(它首先会说“applicationname.svchost.exe已崩溃,等等。是否要调试?”,如果我按“是”,它会告诉我“无法调试已关闭的应用程序”。)

没有办法找出崩溃的原因?因为我已经没有主意了,调试器根本没有给我任何信息。毫无例外,我甚至不能进行堆栈跟踪或转储。:p(我想这是一个同步问题(即使在该领域我只做顺序工作…),但是为什么不启动异常呢?:|)

在出现问题的领域,我卸载了一个文件,重新加载了一系列与小说相关的类(在一个连续的核心线程中,所以我怀疑这可能是个问题),并通过XAudio2启动了一个新音乐。(顺便问一下,XAudio2的多线程考虑因素是什么?从多线程调用安全吗?)

谢谢你的帮助


另外,我的手机上有一个软件可以监控所有通话,并告诉我崩溃前的最后一个通话是什么?

您是否检查了Windows管理面板中的事件日志? 所有类型的错误都会以最少的细节记录在本节中


有一次,我有一个应用程序在无异常的情况下崩溃,我找到的唯一帮助是事件日志查看器,在那里我发现崩溃的来源是StackOverflowException。

您应该尝试使用,如果您的怀疑是对的,并且这是一个同步问题,分析崩溃转储应该会指出问题所在,问题的原因可能很难发现。

您应该发布程序崩溃时收到的确切消息。我怀疑它实际上是说“已崩溃”。错误消息中可能有一些有用的线索。没有消息,VS调试器也没有给出异常,消息是“application name.svchost.exe已停止工作,是否要调试?”,如果我按“是”,它将启动另一个visual studio并告诉我“您无法调试已关闭的应用程序”,错误很可能会出现在事件日志中,可能是在某个模糊的服务或dll中?我使用Windbg发现了问题,这是XAudio2的一些疯狂错误。谢谢!