private void StopDataServiceScheduler() { var currentRequest = App.DataCacheServiceInstance.Scheduler.GetCurrentRequestAndStopScheduler(); if (currentRequest != null) { if (!currentRequest.AsyncResult.ManualResetEvent.WaitOne(8500)) { DataCacheServiceInstance = null; } } }
/// <summary> /// Constructor for the Application object. /// </summary> public App() { // Global handler for uncaught exceptions. UnhandledException += Application_UnhandledException; // Standard Silverlight initialization InitializeComponent(); // Phone-specific initialization InitializePhoneApplication(); // Show graphics profiling information while debugging. if (System.Diagnostics.Debugger.IsAttached) { // Display the current frame rate counters. //Application.Current.Host.Settings.EnableFrameRateCounter = true; // Show the areas of the app that are being redrawn in each frame. //Application.Current.Host.Settings.EnableRedrawRegions = true; // Enable non-production analysis visualization mode, // which shows areas of a page that are handed off to GPU with a colored overlay. //Application.Current.Host.Settings.EnableCacheVisualization = true; // Disable the application idle detection by setting the UserIdleDetectionMode property of the // application's PhoneApplicationService object to Disabled. // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run // and consume battery power when the user is not using the phone. PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; } this.RegisterServices(); this.CheckAndCreateDatabase(); IsolatedStorageFileHelper.CreateDirectoryIfNotExists("medias"); IsolatedStorageFileHelper.CopyIconToIsolatedStorage("/Shared/Media/application.png"); if (DataCacheServiceInstance == null) { DataCacheServiceInstance = new DataCacheService(); if (!ServiceLocator.Current.GetInstance<IApplicationSettingsService>().GetIsOldMediaImported()) { if (IsolatedStorageFileHelper.AnyDirectoryExists("mediaVideo", "mediaMusic")) { ServiceLocator.Current.GetInstance<IApplicationSettingsService>().ResetHosts(); App.DataCacheServiceInstance.ImportOldMedias(TaskParam.AsyncAction("ImportOldMedias", (state) => { Deployment.Current.Dispatcher.BeginInvoke(() => { ServiceLocator.Current.GetInstance<IApplicationSettingsService>().SetIsOldMediaImported(true); }); })); } else { ServiceLocator.Current.GetInstance<IApplicationSettingsService>().SetIsOldMediaImported(true); } } } else { DataCacheServiceInstance.Scheduler.Start(); } }
// Code to execute when the application is activated (brought to foreground) // This code will not execute when the application is first launched private void Application_Activated(object sender, ActivatedEventArgs e) { if (DataCacheServiceInstance == null) { DataCacheServiceInstance = new DataCacheService(); } else { DataCacheServiceInstance.Scheduler.Start(); } }