Example #1
0
        /// <summary>
        /// Invoked when application execution is being suspended.  Application state is saved
        /// without knowing whether the application will be terminated or resumed with the contents
        /// of memory still intact.
        /// </summary>
        /// <param name="sender">The source of the suspend request.</param>
        /// <param name="e">Details about the suspend request.</param>
        private void OnSuspending(object sender, SuspendingEventArgs e)
        {
            var deferral = e.SuspendingOperation.GetDeferral();

            // Perform suspending logic on non UI thread to avoid deadlocks
            // since some ongoing flows may need access to UI thread
            new System.Threading.Tasks.Task(async() =>
            {
                await mainViewModel.OnAppSuspending();
                deferral.Complete();
            }).Start();
        }