我正在构建一个 Windows 8 应用程序并出现以下异常:
SuspensionManager failed
运行以下代码时:
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
await SuspensionManager.SaveAsync();
deferral.Complete();
}
异常发生在方法的第三行,并没有真正给出任何细节。
我没能在网上找到与此相关的任何有用信息。有人以前见过这个吗?
//编辑
这可能与我正在为 Windows 8 Facebook SDK 使用 dynamic
类型变量有关。
是否不允许动态
变量?
//编辑2
下面是dynamic
变量的用法:
dynamic result = await FB.GetTaskAsync("fql", parameters);
if (result.data.Count > 0)
{
return result.data[0].src_big as string;
}
异常的调用栈:
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task task) + 0x5e bytes
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task) + 0x35 bytes
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.GetResult() + 0x16 bytes
FacebookRandomizer.exe!FacebookRandomizer.App.OnSuspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) Line 86 + 0xa5 bytes C#
[Native to Managed Transition]
前三个是外部代码,第四个是我在App.xaml.cs中的方法。
最佳答案
找到答案了,这完全不是Facebook-sdk相关的。
我在暂停时在 pageState 中保存了一个位图图像,显然这不起作用。
这是旧代码:
BitmapImage img = RandomImage.ImageSource as BitmapImage;
pageState["currentImage"] = img;
和新的:
BitmapImage img = RandomImage.ImageSource as BitmapImage;
Uri uriSource = img.UriSource;
pageState["currentImage"] = uriSource;
关于c# - 调用 SuspensionManager.SaveAsync() 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13555722/