| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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;
- /// <remarks>
- /// ScheduledAgent constructor, initializes the UnhandledException handler
- /// </remarks>
- 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();
- }
- }
- /// <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
- //
- // 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();
- });
- }
- }
- }
|