OnSuspending の中で非同期処理を行う場合は、処理が終わるまで中断を延期させます。
※ 中断処理のタイムアウト (Windows では 5 秒、Windows Phone では 1 ~ 10 秒) を超えて延期することはできません。
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
// 中断延期オブジェクトを取得する
var deferral = e.SuspendingOperation.GetDeferral();
// 非同期処理を行う
await …
// 処理が完了したことを中断延期オブジェクトに伝える
deferral.Complete();
}
参考: MSDN 「アプリを中断する方法 (XAML)」
biac [ http://bluewatersoft.cocolog-nifty.com/ ]