In meiner Windows-Store-Anwendung habe ich eine Funktion abwarten, die manchmal einige Minuten dauert (wird über die Leistung in einem anderen Thread beraten). Wenn ein Benutzer sich dagegen außerhalb der Anwendung konzentriert, stürzt er ab. Als ich das Ereignisprotokoll überprüfte, bekam ich folgende Störung:Windows UWP, Anwendung stürzt während des asynchronen Anrufs ab
App was terminated because it took too long to suspend.
Ich verwende Prisma in der Anwendung. Ich habe Application.Current.Suspending
, mit folgendem Code behandelt (die immer genannt wird):
protected void OnApplicationSuspending(object sender, SuspendingEventArgs e)
{
var defferal = e.SuspendingOperation.GetDeferral();
if (sessionStateService.SessionState.ContainsKey("plotId"))
{
sessionStateService.SessionState.Remove("plotId");
}
sessionStateService.SessionState.Add("plotId", Plot.Id);
if (sessionStateService.SessionState.ContainsKey("Page"))
{
sessionStateService.SessionState.Remove("Page");
}
sessionStateService.SessionState.Add("Page", "OperationRecording");
defferal.Complete();
}
ich auch OnNavigatingFrom Funktion außer Kraft gesetzt habe, zum Speichern der Navigationsparameter (und es tut nichts anderes).
public override void OnNavigatingFrom(NavigatingFromEventArgs e, Dictionary<string, object> viewModelState, bool suspending)
{
if (viewModelState.ContainsKey("plotId"))
{
viewModelState.Remove("plotId");
}
viewModelState.Add("plotId", Plot.Id);
base.OnNavigatingFrom(e, viewModelState, suspending);
}
Ich bin nicht in der Lage, herauszufinden, wie dieses Problem zu beheben.