C# 第二次运行应用程序时显示驱动程序崩溃

C# 第二次运行应用程序时显示驱动程序崩溃,c#,windows-8,microsoft-metro,windows-runtime,webcam,C#,Windows 8,Microsoft Metro,Windows Runtime,Webcam,基本上,我现在正在开发一个超级简单的metro应用程序。目前它所做的只是显示一个网络摄像头视频流。下面是所有相关的当前代码(capture是XAML中定义的CaptureElement,mediaCapture是mediaCapture类型)。从VS 2012开始,我第一次在调试本地系统模式下运行程序时,代码运行得非常完美。然后我通过从顶部拖动来关闭应用程序。但是,下一次我运行程序时,我的显示驱动程序崩溃-从Windows事件查看器:“显示驱动程序igfx停止响应并已成功恢复。”。我对C#做任何

基本上,我现在正在开发一个超级简单的metro应用程序。目前它所做的只是显示一个网络摄像头视频流。下面是所有相关的当前代码(capture是XAML中定义的CaptureElement,mediaCapture是mediaCapture类型)。从VS 2012开始,我第一次在调试本地系统模式下运行程序时,代码运行得非常完美。然后我通过从顶部拖动来关闭应用程序。但是,下一次我运行程序时,我的显示驱动程序崩溃-从Windows事件查看器:“显示驱动程序igfx停止响应并已成功恢复。”。我对C#做任何开发都是新手,所以我真的不确定从哪里开始寻找导致这种情况的原因。任何帮助都将不胜感激,谢谢

    private async void init()
    {
        mediaCapture = new MediaCapture();
        MediaCaptureInitializationSettings mc = new MediaCaptureInitializationSettings();
        mc.StreamingCaptureMode = StreamingCaptureMode.Video;
        await mediaCapture.InitializeAsync(mc);
        capture.Source = mediaCapture;
        await mediaCapture.StartPreviewAsync();
    }
注意:init()是从MainPage的构造函数调用的,MainPage是当前唯一的一个页面

注2:当我在模拟器中运行它时,会弹出一个错误(这个错误来自我的常规桌面环境(很抱歉质量太差)。我使用的是一台最近升级到Windows 8 RTM的Windows 7计算机:


注3:Windows内置摄像头应用程序工作正常。

我猜问题出在您的图形卡驱动程序中,如果您使用的是默认/附带的驱动程序,请尝试使用更具体的驱动程序(如您可以在Nvidia或ATI网站上获得的驱动程序)如果您使用的是卡制造商提供的驱动程序,那么请尝试默认/通用驱动程序。一个好的选择可能是在模拟器中而不是在真正的机器或(如果可以)中消除应用程序的bug使用虚拟机。

因此,我发现这是一个愚蠢的错误。如果其他人也在做同样的事情,希望他们能找到。显然发生的是,当我关闭应用程序时,VS 2012继续调试。当我重新打开应用程序时(从“开始”菜单)VS仍在调试上次运行。这不知何故导致了显示驱动程序崩溃。如果有人想更深入地解释为什么会发生这种情况,我会很高兴。在我确定这是导致所有显示驱动程序崩溃的原因后,我会将此标记为正确答案。

您使用的是最新版本(RTM)吗或者任何预览?你有没有通过查看哪一行导致崩溃?这有点奇怪,因为没有抛出实际错误,但我认为这是
InitializeAsync
行。有趣的是,我在模拟器上也有同样的行为。模拟器的第一次运行正常,但是如果你关闭应用程序并再次打开它,dis播放驱动程序崩溃。我添加了错误消息,然后显示在顶部。仅供参考…模拟器实际上是一个RDP会话,返回到您自己的桌面,因此它将使用与“主”桌面相同的驱动程序、系统设置等。