c# - 调用 SuspensionManager.SaveAsync() 时出现异常

标签 c# exception windows-8 facebook-c#-sdk

我正在构建一个 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/

相关文章:

C#:给定一个没有路径的文件时,如何获取 Process.Start 将使用的可执行路径?

java.lang.reflect.inaccessibleobjectexception 无法使 jdk.internal.loader.classloaders

c++ - IFileOperation::DeleteItems 在 Windows 8 上不要求确认(与 Windows 7 不同)

javascript - 过滤联系人以显示或仅显示设置数量的联系人

c# - 从 Select Bigquery 创建表

c# - 测试模拟对象构造函数

c# - 如何在 C# 中创建嵌套的自定义配置部分?

python - 为什么尝试在Python 3.7的Visual Studio代码中使用except block无法工作?

exception - BizTalk 从 "Exception thrown from: segment X progress Y"开始通信的分段和进度是什么意思

windows - 为什么本地开发服务器无法使用 Yesod?