diff options
Diffstat (limited to 'Rx/NET/Test/Rx/WindowsPhoneAgent8/ScheduledAgent.cs')
-rw-r--r-- | Rx/NET/Test/Rx/WindowsPhoneAgent8/ScheduledAgent.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Rx/NET/Test/Rx/WindowsPhoneAgent8/ScheduledAgent.cs b/Rx/NET/Test/Rx/WindowsPhoneAgent8/ScheduledAgent.cs new file mode 100644 index 0000000..88561e6 --- /dev/null +++ b/Rx/NET/Test/Rx/WindowsPhoneAgent8/ScheduledAgent.cs @@ -0,0 +1,52 @@ +using System.Diagnostics; +using System.Windows; +using Microsoft.Phone.Scheduler; +using System.Reactive.Linq; +using System; + +namespace WindowsPhoneAgent8 +{ + public class ScheduledAgent : ScheduledTaskAgent + { + /// <remarks> + /// ScheduledAgent constructor, initializes the UnhandledException handler + /// </remarks> + static ScheduledAgent() + { + // Subscribe to the managed exception handler + Deployment.Current.Dispatcher.BeginInvoke(delegate + { + Application.Current.UnhandledException += UnhandledException; + }); + } + + /// Code to execute on Unhandled Exceptions + private static void UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) + { + if (Debugger.IsAttached) + { + // An unhandled exception has occurred; break into the debugger + Debugger.Break(); + } + } + + /// <summary> + /// Agent that runs a scheduled task + /// </summary> + /// <param name="task"> + /// The invoked task + /// </param> + /// <remarks> + /// This method is called when a periodic or resource intensive task is invoked + /// </remarks> + protected override void OnInvoke(ScheduledTask task) + { + //TODO: Add code to perform your task in background + + Observable.Return("").Delay(TimeSpan.FromSeconds(1)).Subscribe(_ => + { + NotifyComplete(); + }); + } + } +}
\ No newline at end of file |