using System; using System.Reactive.Linq; using System.Windows; using Microsoft.Phone.Scheduler; using Microsoft.Phone.Shell; namespace WindowsPhoneAgent7 { public class ScheduledAgent : ScheduledTaskAgent { private static volatile bool _classInitialized; /// /// ScheduledAgent constructor, initializes the UnhandledException handler /// public ScheduledAgent() { if (!_classInitialized) { _classInitialized = true; // Subscribe to the managed exception handler Deployment.Current.Dispatcher.BeginInvoke(delegate { Application.Current.UnhandledException += ScheduledAgent_UnhandledException; }); } } /// Code to execute on Unhandled Exceptions private void ScheduledAgent_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) { if (System.Diagnostics.Debugger.IsAttached) { // An unhandled exception has occurred; break into the debugger System.Diagnostics.Debugger.Break(); } } /// /// Agent that runs a scheduled task /// /// /// The invoked task /// /// /// This method is called when a periodic or resource intensive task is invoked /// protected override void OnInvoke(ScheduledTask task) { //TODO: Add code to perform your task in background // // Goal of the agent project is simply to test the "Marketplace Test Kit" passes. // If Rx uses the following, it won't pass. // //PhoneApplicationService.Current.Activated += (o, e) => { }; Observable.Return("").Delay(TimeSpan.FromSeconds(1)).Subscribe(_ => { NotifyComplete(); }); } } }