有点奇怪,我的Windows Phone应用程序会在没有任何警告的情况下退出,大部分时间都能正常工作。
然后我跟踪Application_UnhandledException,发现Exception消息是:
[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)
]
我没有详细信息可以找出异常的原因。有没有人以前遇到过这个例外并得到了解决方案?
任何建议都将受到赞赏。
答案 0 :(得分:2)
从它的外观来看,你的MainPage中可能有一个DispatcherLoad方法,而你正在调用该方法中的lambda函数。类似的东西:
private void DispatcherLoad()
{
this.Dispatcher.BeginInvoke(() => Console.WriteLine("hello world;"));
}
lambda中出现错误(在我的示例中:Console.WriteLine("hello world;")
部分)。所以现在你必须找到正确的lambda,并找出你的代码崩溃的原因。
鉴于“object sender,EventArgs e”参数,它可能是一个事件处理程序。您是否在DispatcherLoad函数中的某处将一个lambda分配给事件处理程序?例如:
private void DispatcherLoad()
{
this.Button.Click += (sender, e) => Console.WriteLine("hello world;");
}
注意:如果你的方法中有很多lambdas并且你无法确定哪一个崩溃,你可以尝试使用Reflector打开你的程序集(http://www.reflector.net/)。它会反编译您的dll,然后您可以看到哪个lambda被称为“&lt; DispatcherLoad&gt; b__1”。