1

我的 Windows Phone 应用程序会在没有任何警告的情况下退出,这有点奇怪,大多数情况下它工作正常。

然后我跟踪Application_UnhandledException,发现异常消息是:

[ExceptionMessage]:[NullReferenceException]
[StackTrace]:[
   at wpapp.MainPage.<DispatcherLoad>b__1(Object sender, EventArgs e)
   at MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName)
]

我没有详细的信息来找出异常的原因。有没有人遇到过这个异常并得到了解决方案?

任何建议将不胜感激。

4

1 回答 1

2

从外观上看,您的 MainPage 中很可能有一个 DispatcherLoad 方法,并且您在该方法中调用了一个 lambda 函数。就像是:

    private void DispatcherLoad()
    {
        this.Dispatcher.BeginInvoke(() => Console.WriteLine("hello world;"));
    }

错误发生在 lambda 中(在我的示例中:Console.WriteLine("hello world;")部件)。所以现在你只需要找到正确的 lambda,并找出你的代码崩溃的原因。

给定“object sender, EventArgs e”参数,它可能是一个事件处理程序。您是否将 lambda 分配给 DispatcherLoad 函数中某处的事件处理程序?例如:

    private void DispatcherLoad()
    {
        this.Button.Click += (sender, e) => Console.WriteLine("hello world;");
    }

注意:如果您的方法中有许多 lambda,并且您无法确定哪个正在崩溃,您可以尝试使用 Reflector (http://www.reflector.net/) 打开您的程序集。它会反编译你的 dll,然后你可以看到哪个 lambda 被称为“<DispatcherLoad>b__1”。

于 2012-04-14T10:48:10.347 回答